2014-09-26 139 views
3

只是一個簡單的問題:如何更改json對象名稱(鍵)?

如果我有一個包含「鍵/值」就像這樣一個JSON對象:

"name":"value" 

,我想改名字的部分到別的東西,我應該怎麼做?我不想刪除並重新制作。

+0

當你說'我有一個json對象',是否意味着你有一個'JSONObject'的實例,一個表示你的對象的String,完全是其他的東西? (在第一種情況下,'jsonobject.put(「new name」,jsonobject.remove(「name」));'就像它直截了當)。 – njzk2 2014-09-26 17:55:38

+0

我不能想到任何贊成「我不想移除」的論點,因爲這只是操縱簡單的引用。 JSONObject由HashMap支持,在該HashMap中,您無法更改這些鍵的值(因爲顯而易見的散列原因),這意味着在刪除鍵後需要使用新鍵重新插入該值。 – njzk2 2014-09-26 18:04:25

+0

@ njzk2我編輯了我的問題,對不起。我認爲除去的東西是唯一的,謝謝。 – 2014-09-26 18:08:53

回答

8

合理和緊湊的實現一個新的對象,因爲jsonObject是你指的是JSON對象和它的JSONObject一個實例:

jsonObject.put("new name", jsonObject.remove("name")); 
0

創建一個新的價值

new JSONObject(jsonobject.toString().replace("\"name\":","\"newvalue\":");) 
+2

如果對象是'{「name」:「something」,「other \」name「:」這個名字在中間有一個引號「,那麼它將不起作用}} – njzk2 2014-09-26 17:57:58

+0

反正它會起作用......但是它也會改變內容。 – 2014-09-26 22:38:37