Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Java loop over Json array?

Tags:

java

json

I am trying to loop over the following JSON

{     "dataArray": [{         "A": "a",         "B": "b",         "C": "c"     }, {         "A": "a1",         "B": "b2",         "C": "c3"     }] } 

What i got so far:

JSONObject jsonObj = new JSONObject(json.get("msg").toString());  for (int i = 0; i < jsonObj.length(); i++) {     JSONObject c = jsonObj.getJSONObject("dataArray");      String A = c.getString("A");     String B = c.getString("B");     String C = c.getString("C");  } 

Any ideas?

like image 750
Alosyius Avatar asked Sep 26 '13 02:09

Alosyius


People also ask

How do I iterate over an array in JSON?

1) Create a Maven project and add json dependency in POM. xml file. 2) Create a string of JSON data which we convert into JSON object to manipulate its data. 3) After that, we get the JSON Array from the JSON Object using getJSONArray() method and store it into a variable of type JSONArray.

How do you parse an array of JSON objects?

Parsing JSON Data in JavaScript In JavaScript, you can easily parse JSON data received from the web server using the JSON. parse() method. This method parses a JSON string and constructs the JavaScript value or object described by the string. If the given string is not valid JSON, you will get a syntax error.

How do I read JSONArray?

String value = (String) jsonObject. get("key_name"); Just like other element retrieve the json array using the get() method into the JSONArray object.


Video Answer


1 Answers

In your code the element dataArray is an array of JSON objects, not a JSON object itself. The elements A, B, and C are part of the JSON objects inside the dataArray JSON array.

You need to iterate over the array

public static void main(String[] args) throws Exception {     String jsonStr = "{         \"dataArray\": [{              \"A\": \"a\",                \"B\": \"b\",               \"C\": \"c\"            }, {                \"A\": \"a1\",              \"B\": \"b2\",              \"C\": \"c3\"           }]      }";      JSONObject jsonObj = new JSONObject(jsonStr);      JSONArray c = jsonObj.getJSONArray("dataArray");     for (int i = 0 ; i < c.length(); i++) {         JSONObject obj = c.getJSONObject(i);         String A = obj.getString("A");         String B = obj.getString("B");         String C = obj.getString("C");         System.out.println(A + " " + B + " " + C);     } } 

prints

a b c a1 b2 c3 

I don't know where msg is coming from in your code snippet.

like image 110
Sotirios Delimanolis Avatar answered Oct 07 '22 15:10

Sotirios Delimanolis