Добавление значений в объект Json
Мой JsonArray
структура такая:
resultArray =
[
{
"key1": [],
"key2": "keyval",
"key3": "keyVal"
},
{
"key1": [],
"key2": "keyval",
"key3": "keyVal"
},
{
"key1": [],
"key2": "keyval",
"key3": "keyVal"
}
]
Я пытаюсь добавить JsonObject
в первом положении
JSONObject jo = new JSONObject();
jo.put("aa","bb");
( (JSONObject)resultArray.get(0)).getJSONArray("key1").put(jo);
после выполнения вышеуказанного шага ниже приведен результат.
resultArray = [{ "key1": [{"aa","bb"}] ,"key2":"keyval", "key3":"keyVal" },
{ "key1": [{"aa","bb"}] ,"key2":"keyval", "key3":"keyVal" },
{ "key1": [{"aa","bb"}] ,"key2":"keyval", "key3":"keyVal" } ]
Значения добавляются ко всем пунктам в моем JsonArray
,
Но я хочу добавить к конкретной позиции.
В приведенном выше случае я хочу добавить только в позиции "0".
Пожалуйста, дайте мне знать, если есть какая-либо ошибка в строке ниже:
( (JSONObject)resultArray.get(0)).getJSONArray("key1").put(jo);
1 ответ
Привет, я попробовал ваш код и работает нормально. Для более подробной информации, пожалуйста, проверьте с рабочим примером.
try {
JSONArray resultArray = new JSONArray();
JSONObject obj1 = new JSONObject();
JSONArray keyArray1 = new JSONArray();
obj1.put("key1", keyArray1);
resultArray.put(obj1);
JSONObject obj2 = new JSONObject();
JSONArray keyArray2 = new JSONArray();
JSONObject item1 = new JSONObject();
item1.put("value", "old");
keyArray2.put(item1);
obj2.put("key1", keyArray2);
resultArray.put(obj2);
JSONObject jo = new JSONObject();
jo.put("value", "new");
Log.i("@@@@",
"before Add lengths "
+ ((JSONObject) resultArray.get(0)).getJSONArray(
"key1").length());
((JSONObject) resultArray.get(0)).getJSONArray("key1").put(jo);
Log.i("@@@@",
"After Add resultArray [0] "
+ ((JSONObject) resultArray.get(0))
.getJSONArray("key1").get(0).toString());
Log.i("@@@@",
"After Add resultArray [1] "
+ ((JSONObject) resultArray.get(1))
.getJSONArray("key1").get(0).toString());
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Запустите это и увидите результат в LogCat.
Результат:
04-06 12: 38: 03.295: I / @@@@ (10307): before Добавить длины 0
04-06 12: 38: 03.295: I / @@@@ (10307): после добавления resultArray [0] {"value": "new"}
04-06 12: 38: 03.295: I / @@@@ (10307): после добавления resultArray [1] {"value":"old"}