Jackson 2.x kullanıyorsanız, size Ek Açıklama @JsonIdentityInfo
kullanabilirsiniz: Nesne Kimlik bilgileri/seri JSON'dan için/özellik değerini serisini nasıl belirlenmesi için kullanılacak olup olmadığı
(ve diğer veri formatları) @JsonIdentityInfo ek açıklamasının varlığına (veya eksikliğine) dayalı olacaktır.
bkz: Örneğin http://wiki.fasterxml.com/JacksonFeatureObjectIdentity
, sınıfı CarSharing
açıklama ise:
import com.fasterxml.jackson.annotation.JsonIdentityInfo;
import com.fasterxml.jackson.annotation.ObjectIdGenerators;
//...
@JsonIdentityInfo(generator=ObjectIdGenerators.IntSequenceGenerator.class, property="@id")
public class CarSharing {
bir kişinin (bu sınıfa bir alan adı eklendi) JSON sonucudur:
{
"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"
}
Ve CarSharing örneği id=12345
ile:
{
"@id": 1,
"id": 12345,
"owner": {
"carSharing": 1,
"name": "owner"
},
"members": [
{
"carSharing": 1,
"name": "owner"
},
{
"carSharing": 1,
"name": "driver2"
},
{
"carSharing": 1,
"name": "driver"
}
]
}
@id
alanı, jackson'dan üretilir. Başvurulan nesne serileştirilmemişse, başvurulan nesnenin değeri @id
olarak ayarlanır.
Teşekkürler şimdi çalışıyor. – user2316219