あなたはジャクソン2.xのを使用している場合は、注釈@JsonIdentityInfo
を使用することができます:オブジェクト識別情報は、/シリアル化JSONへ/からプロパティ値をデシリアライズする方法を決定するために使用されるかどうか
(および他のデータフォーマット)は、@ JsonIdentityInfoアノテーションの存在(またはその欠如)に基づいています。あなたは注釈を付ける場合例えばhttp://wiki.fasterxml.com/JacksonFeatureObjectIdentity
、クラスCarSharing
:
参照
import com.fasterxml.jackson.annotation.JsonIdentityInfo;
import com.fasterxml.jackson.annotation.ObjectIdGenerators;
//...
@JsonIdentityInfo(generator=ObjectIdGenerators.IntSequenceGenerator.class, property="@id")
public class CarSharing {
人のJSONの結果は、(私がこのクラスにフィールド名を追加しました)です:
{
"carSharing": {
"@id": 1,
"id": 12345,
"owner": {
"carSharing": 1,
"name": "owner"
},
"members": [
{
"carSharing": 1,
"name": "owner"
},
{
"carSharing": 1,
"name": "driver2"
},
{
"carSharing": 1,
"name": "driver"
}
]
},
"name": "driver2"
}
カーシャーリングのインスタンスid=12345
:
{
"@id": 1,
"id": 12345,
"owner": {
"carSharing": 1,
"name": "owner"
},
"members": [
{
"carSharing": 1,
"name": "owner"
},
{
"carSharing": 1,
"name": "driver2"
},
{
"carSharing": 1,
"name": "driver"
}
]
}
フィールド@id
はjacksonから生成されます。参照されるオブジェクトがシリアル化されていない場合、値は参照されるオブジェクトの@id
に設定されます。
ありがとう、私は今働いていると思う。 – user2316219