2014-10-30 79 views
2

我有一個JSON對象,類似的一部分:使用傑克遜操縱JSON

{ 
    "myData":[1,2,3], 
    "externalData1":..., 
    ... 
    "externalDataN":... 
} 

我想讀這個JSON,更新我的數據(可以說加數字「4」),並保存JSON不知道有關外部數據字段的任何信息。

我知道,解析我可以使用@JsonIgnoreProperties但我會丟失保存的數據。有沒有辦法做到這一點,而無需手動通過TreeModel?

謝謝。

+1

傑克遜流API可以工作,但你還是要消耗外部數據並將其寫入緩衝 – hsluo 2014-10-30 09:43:31

+0

使用傑克遜,具有POJO你可以寫一個自定義序列,並設置@JsonSerialize註釋到所需的POJO屬性或POJO類,如果您想修改其他屬性或生成特定的JSON樹。 – vzamanillo 2014-10-30 10:31:22

回答

2

使用org.json

JSONObject root = new JSONObject(json); 

JSONArray myData = (JSONArray) root.get("myData"); 

myData.remove(0); 
myData.put(4); 

System.out.println("root = " + root.toString()); 
1

你可以使用json-simple,它不會給你數據綁定到一個POJO,但它會比解析你自己更方便。