Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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
Java JSONArray中的JSONObject_Java_Arrays_Json_Jsonobject - Fatal编程技术网

Java JSONArray中的JSONObject

Java JSONArray中的JSONObject,java,arrays,json,jsonobject,Java,Arrays,Json,Jsonobject,我试图在Java中将JSONObject放入JSONArray中。这是我的两个目标: 杰索纳雷: [{ "url": null, "flag": "0", "read": "0", "time": 2000, "exp": null, "population": 10 }] JSONObject: { "events": [ { "color": "Green", "event": "Restart"

我试图在Java中将JSONObject放入JSONArray中。这是我的两个目标:

杰索纳雷:

[{
    "url": null,
    "flag": "0",
    "read": "0",
    "time": 2000,
    "exp": null,
    "population": 10
}]
JSONObject:

{
"events": [
    {
        "color": "Green",
        "event": "Restart"
    },
    {
        "color": "Black",
        "event": "Shutdown"
    },
    {
        "color": "White",
        "event": "Read"
    }       
]
}
预期结果:

[
{
    "url": null,
    "flag": "0",
    "read": "0",
    "time": 2000,
    "exp": null,
    "population": 10,
    "events": [
        {
            "color": "Green",
            "event": "Restart"
        },
        {
            "color": "Black",
            "event": "Shutdown"
        },
        {
            "color": "White",
            "event": "Read"
        }
    ]
}
]
[
{
    "url": null,
    "flag": "0",
    "read": "0",
    "time": 2000,
    "exp": null,
    "population": 10
},
{
    "events": [
        {
            "color": "Green",
            "event": "Restart"
        },
        {
            "color": "Black",
            "event": "Shutdown"
        },
        {
            "color": "White",
            "event": "Read"
        }
    ]
}
]
我尝试使用此代码,但结果不正常:

jsonArray.put(jsonObject);
意外结果:

[
{
    "url": null,
    "flag": "0",
    "read": "0",
    "time": 2000,
    "exp": null,
    "population": 10,
    "events": [
        {
            "color": "Green",
            "event": "Restart"
        },
        {
            "color": "Black",
            "event": "Shutdown"
        },
        {
            "color": "White",
            "event": "Read"
        }
    ]
}
]
[
{
    "url": null,
    "flag": "0",
    "read": "0",
    "time": 2000,
    "exp": null,
    "population": 10
},
{
    "events": [
        {
            "color": "Green",
            "event": "Restart"
        },
        {
            "color": "Black",
            "event": "Shutdown"
        },
        {
            "color": "White",
            "event": "Read"
        }
    ]
}
]

“events”键值大部分位于JSONArray中的唯一元素内,而不是作为另一个元素。

JSONArray包含一个
JSONObject
。当您
jsonArray.put(jsonObject)时;
您正在将它添加到
JSONArray
,而不是添加到
JSONArray
中的
JSONObject

这将把
jsonObject
添加到
JSONArray
中的第一个
jsonObject

jsonArray.getJsonObject(0).put("events",jsonObject.get("events"));
你需要

((JSONObject) jsonArray.get(0)).put("events", jsonObject.get("events"));
或者,以更广义的形式

    for (Map.Entry entry : (Set<Map.Entry>) jsonObject.entrySet()) {
        ((JSONObject) jsonArray.get(0)).put(entry.getKey(), entry.getValue());
    }
for(Map.Entry:(Set)jsonObject.entrySet()){
((JSONObject)jsonArray.get(0)).put(entry.getKey(),entry.getValue());
}

我没有测试代码,但我认为这会起作用。如果你想试试的话。
jsonArray[0]。事件将在0索引对象中创建一个名为“事件”的新字段

 jsonArray[0].events = jsonObject.events;

这正是我所期望的。