2014-09-26 75 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