2015-05-19 59 views
0

我一直在使用傑克遜(它工作很好順便說一句)所有的json「樹」,我遍歷,直到我到達最深的json級別,不幸的是json屬性是「動態「如下面的所以它沒有任何意義創建這些對象...傑克遜/ json使用列表<String[]>和數據綁定

"values": [ 
{ 
"duration": 0.20669677067008357 
}, 
{ 
"weight": 0.013746673955838557 
} 
] 

的問題是,‘時間’和‘重量’是動態的,所以我希望用List<String[]>爲‘價值’但我不認爲這是可能的。例如,下一個電話可能有「持續時間」,「重量」和「市場價值」或其他10個屬性。

有關如何解決此問題的任何建議?

回答

1

我居然找到了一個解決方案有興趣:

本文/如何在理解傑克遜的數據綁定靈活性非常有幫助:

http://www.studytrails.com/java/json/java-jackson-Annotations-Dynamic-Beans.jsp

特別,我選擇使用註釋@JsonAnySetter比如這個在我的POJO上:

private String name; 私有對象值;

@JsonAnySetter 
public void set(String name, Object value) { 
    this.name = name; 
    this.value = value; 
} 

然後我選擇了將這些名稱/值對的一個Map<String, Object>以方便檢索...偉大工程!