Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 向Json对象添加值_Android_Json_Android Json - Fatal编程技术网

Android 向Json对象添加值

Android 向Json对象添加值,android,json,android-json,Android,Json,Android Json,我的JsonArray结构如下: resultArray = [ { "key1": [], "key2": "keyval", "key3": "keyVal" }, { "key1": [], "key2": "keyval", "key3": "keyVal" }, { "key1": [], "key2": "keyval", "key3": "keyVal" } ] 我正在尝试在第一个位置添加JsonObjec

我的
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" } ]
值被添加到my
JsonArray
中的所有项目中

但我想补充一下具体的职位

在上述情况下,我只想在“0”位置添加到

请让我知道以下行中是否有任何错误:

( (JSONObject)resultArray.get(0)).getJSONArray("key1").put(jo);

嗨,我试过你的代码,效果很好。有关更多说明,请查看工作示例

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):在添加结果数组[0]{“值”:“新建”}

04-06 12:38:03.295:I/@@@@(10307):在添加结果数组[1]{“value”:“old”}