2014-04-01 69 views
1

任何人都可以解釋我如何正確地插入一個子對象到JSONObject?我已經試過這兩種方案 - org.json.simpleorg.json和代碼,如:Java的JSON子對象

JSONObject obj = new JSONObject(); 
obj.put("key", "value"); 
obj.put("subobject", obj.toString()); 

這些字符串我除了後:

{"key":"value","subobject":{"key":"value"}} 

但實際值是:

{\"key\":\"value\","subobject":{"key":"value"}} 

它總是逃脫插入JSONObject時引號,所以我不能做到這一點。當然,我可以嘗試修改代碼,但我想知道 - 實際上,以前沒有人問過這個問題?所以我想這個解決方案就在我的面前,但我不能只看到它。請幫幫我。

回答

2

簡而言之

JSONObject obj = new JSONObject(); 
JSONObject subobj = new JSONObject(); 
obj.put("key", "value"); 
obj.put("subobject", subobj); 

沒有toString()

此外,您打印的JSONObject的方式會影響它的顯示方式。你用System.out?或調試器?只要您可以將結果字符串再次解析爲JSONObject,就不存在真正的問題,對吧?

+0

@VictorPolevoy查看編輯答案。但現在我明白了:你正試圖將_same_對象添加到對象中。爲什麼? – Lovis

+1

哦,是的,我已經意識到並刪除了評論。好的,我們很快就會嘗試,但我敢打賭,這是一個解決方案。給別人一個建議 - 在編碼之前進行一些睡眠:) –