我有以下JSON结构:
{
"PARAMORDER": [{
"TAB1": [{
"1": "Picture ID Source"
}, {
"2": "Place of Issuance"
}],
"TAB2": [{
"1": "Picture ID Source"
}, {
"2": "Place of Issuance"
}]
}]
}
我正在尝试使用java代码创建一个JSON数组,它在解析和检索时看起来像上面的格式。我正在使用org.json.simple API。但是我无法使用java代码在JSON中创建数组数组。有人可以请我分享一个示例代码,它可以构造上述格式的JSON。
下面是我尝试的示例代码,它创建了一个json数组:
JSONArray jsonArray = new JSONArray();
JSONObject firstJson = new JSONObject();
JSONObject secondJson = new JSONObject();
firstJson.put("1", "Picture ID Source");
secondJson.put("1", "Picture ID Source");
jsonArray.add(firstJson);
jsonArray.add(secondJson);
System.out.println(jsonArray.toString);
这给了我以下JSON:
[{
"1": "Picture ID Source"
}, {
"1": "Picturesecond ID Source"
}]
我无法创建JSONArray的JSONArray。有人可以帮我吗? 在此先感谢。
答案 0 :(得分:1)
您已经走上正轨,但是您需要更多代码来创建中间级别,结构可以无限期地以树状方式添加。您的示例中的顶级也是JSON对象,而不是数组。
JSONObject root = new JSONObject();
JSONArray paraArray = new JSONArray();
JSONObject a = new JSONObject();
JSONArray tab1 = new JSONArray();
JSONObject source1 = new JSONObject();
source1.put("1", "Picture ID Source");
tab1.add(source1);
JSONObject source2 = new JSONObject();
source2.put("2", "Place of Issuance");
tab1.add(source2);
a.put("TAB1", tab1);
paraArray.add(a);
JSONObject b = new JSONObject();
JSONArray tab2 = new JSONArray();
JSONObject source3 = new JSONObject();
source3.put("1", "Picture ID Source");
tab2.add(source3);
JSONObject source4 = new JSONObject();
source4.put("2", "Place of Issuance");
tab2.add(source4);
b.put("TAB2", tab2);
paraArray.add(b);
root.put("PARAMORDER", paraArray);
System.out.println(root.toString());
输出
{"PARAMORDER":[{"TAB1":[{"1":"Picture ID Source"},{"2":"Place of Issuance"}]},{"TAB2":[{"1":"Picture ID Source"},{"2":"Place of Issuance"}]}]}