2014-09-26 3 views
3

Просто быстрый вопрос:Как изменить имя объекта json (ключ)?

Если у меня есть объект JSON, который содержит «ключ/значение» s, как это:

"name":"value" 

и я хочу, чтобы изменить название части к чему-то еще, что я должен делать? Я не хочу удалять и делать это снова.

+0

когда вы говорите: «У меня есть объект json», значит, у вас есть экземпляр 'JSONObject', String, представляющий ваш объект, что-то еще? (в первом случае «jsonobject.put» («новое имя», jsonobject.remove («name»)); 'так же стремительно, как и раньше). – njzk2

+0

Я не могу думать ни о каком аргументе в пользу «Я не хочу удалять», так как это просто манипулирование простыми ссылками. JSONObject поддерживается HashMap, в котором вы не можете изменить значение ключей (для очевидной причины хэширования), что подразумевает, что вам нужно повторно вставить значение с помощью нового ключа после его удаления. – njzk2

+0

@ njzk2 Я отредактировал мой вопрос, извините. Я думаю, что удаляющая вещь - единственная, спасибо. –

ответ

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

+0

Все равно будет работать ... Но он также изменит содержание. –

Смежные вопросы