I want to build a JSON Object similar to following the structure in java using JSONObject and JSONArray.
I have gone through various posts in stack overflow, which suggests using methods like push, put etc which I am unable to identify for JSONArray. Please help.
{ "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" } ] } ] }
With the imports org.json.JSONArray
and 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);
I did not include first array's second element for clarity. Hope you got the point though.
EDIT:
The previous answer was assuming you were using org.json.JSONObject
and org.json.JSONArray
.
For net.sf.json.JSONObject
and 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);
Basically it's the same, replacing the method 'put' for 'element' in JSONObject, and 'put' for 'add' in JSONArray.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With