我想使用 JSONObject 和 JSONArray 构建一个类似于 Java 中的结构的 JSON 对象。
我已经浏览了堆栈溢出中的各种帖子,这建议使用我无法识别 JSONArray 的 push、put 等方法。请帮忙。
{
"name": "sample",
"def": [
{
"setId": 1,
"setDef": [
{
"name": "ABC",
"type": "STRING"
},
{
"name": "XYZ",
"type": "STRING"
}
]
},
{
"setId": 2,
"setDef": [
{
"name": "abc",
"type": "STRING"
},
{
"name": "xyz",
"type": "STRING"
}
]
}
]
}
随着进口
org.json.JSONArray
和org.json.JSONObject
JSONObject object = new JSONObject(); object.put("name", "sample"); JSONArray array = new JSONArray(); JSONObject arrayElementOne = new JSONObject(); arrayElementOne.put("setId", 1); JSONArray arrayElementOneArray = new JSONArray(); JSONObject arrayElementOneArrayElementOne = new JSONObject(); arrayElementOneArrayElementOne.put("name", "ABC"); arrayElementOneArrayElementOne.put("type", "STRING"); JSONObject arrayElementOneArrayElementTwo = new JSONObject(); arrayElementOneArrayElementTwo.put("name", "XYZ"); arrayElementOneArrayElementTwo.put("type", "STRING"); arrayElementOneArray.put(arrayElementOneArrayElementOne); arrayElementOneArray.put(arrayElementOneArrayElementTwo); arrayElementOne.put("setDef", arrayElementOneArray); array.put(arrayElementOne); object.put("def", array);
为清楚起见,我没有包含第一个数组的第二个元素。希望你明白这一点。
编辑:
上一个答案是假设您正在使用
org.json.JSONObject
andorg.json.JSONArray
。对于
net.sf.json.JSONObject
和net.sf.json.JSONArray
:JSONObject object = new JSONObject(); object.element("name", "sample"); JSONArray array = new JSONArray(); JSONObject arrayElementOne = new JSONObject(); arrayElementOne.element("setId", 1); JSONArray arrayElementOneArray = new JSONArray(); JSONObject arrayElementOneArrayElementOne = new JSONObject(); arrayElementOneArrayElementOne.element("name", "ABC"); arrayElementOneArrayElementOne.element("type", "STRING"); JSONObject arrayElementOneArrayElementTwo = new JSONObject(); arrayElementOneArrayElementTwo.element("name", "XYZ"); arrayElementOneArrayElementTwo.element("type", "STRING"); arrayElementOneArray.add(arrayElementOneArrayElementOne); arrayElementOneArray.add(arrayElementOneArrayElementTwo); arrayElementOne.element("setDef", arrayElementOneArray); object.element("def", array);
基本上是一样的,在 JSONObject 中为 'element' 替换了方法 'put',在 JSONArray 中为 'add' 替换了 'put'。