我的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);
答案 0 :(得分:0)
您好我尝试了您的代码并且运行正常。有关更多说明,请查看工作示例。
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):在添加长度0之前
04-06 12:38:03.295:I / @@@@(10307):添加resultArray [0] {&#34;值&#34;:&#34; new&#34;}
04-06 12:38:03.295:I / @@@@(10307):添加resultArray [1] {&#34;值&#34;:&#34; old&#34;}