Java loop over Json array?

前端 未结 2 658
遥遥无期
遥遥无期 2020-12-09 08:09

I am trying to loop over the following JSON

{
    \"dataArray\": [{
        \"A\": \"a\",
        \"B\": \"b\",
        \"C\": \"c\"
    }, {
           


        
相关标签:
2条回答
  • 2020-12-09 08:42

    Java Docs to the rescue:

    You can use http://www.json.org/javadoc/org/json/JSONObject.html#getJSONArray(java.lang.String) instead

    JSONArray dataArray= sync_reponse.getJSONArray("dataArray");
    
    for(int n = 0; n < dataArray.length(); n++)
    {
        JSONObject object = dataArray.getJSONObject(n);
        // do some stuff....
    }
    
    0 讨论(0)
  • 2020-12-09 08:49

    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.

    0 讨论(0)
提交回复
热议问题