2012-08-17 71 views
0

我剛剛升級到2.0.5傑克遜,發現這個所謂的@JsonIdentityInfo,允許你做一次定義一個對象新的屬性,但隨後有串行創建對單個對象的引用,而不會產生重複每次其所見。實際上很不錯。 http://wiki.fasterxml.com/JacksonFeatureObjectIdentity@JsonIdentityInfo在陣列

的文檔指出此功能目前還不目前支持的陣列。我想知道有沒有人知道其他方法?我有JSON的片段可能會是像這樣的:

{ 
    "people":[ 
     { "@id" = 1, "name"="bill"}, 
     { "@id" = 2, "name"="joe"} 
    ], 
    "friends": [1,2] 

} 

我想有「朋友」與「人」的對象數組膨脹,以同樣的方式,「人」的意志。有誰知道一種方法來做到這一點?

回答

1

你可以做的是使用包裝POJO僅包含數組或列表。 POJO可以正常使用身份處理。它增加了一個額外的級別,但應該很好地工作。

如果你想看到的列表/數組類型的支持,確保在Github提交一份RFE。雖然不容易實現,這是可能的,只是相當多的工作的(這就是爲什麼最初實現集中表現爲JSON對象的東西)。

1

你可以做到這一點與JSOG JS庫:https://github.com/jsog/jsog,但你需要序列化數據,如:

{ 
"people":[ 
    { "@id" = 1, "name"="bill"}, 
    { "@id" = 2, "name"="joe"} 
], 
"friends": [ {@ref = 1}, {@ref = 2}] 

}

或修改JSOG庫。