简体   繁体   中英

parsing json using java

{
    "Items": [{
            "__type": "Section1:#com.test.example",
            "Info": {            
            }, {
            "__type": "Section2:#com.test.example2",
            "Allergy": [{


            }]

            }
      }]

}

How can i parse the above JSON Object, so that i get Info items and Allergy items....

JSONObject documentRoot = new JSONObject(result);
JSONArray documentChild = documentRoot.getJSONArray("Items");
JSONObject child = null;
for (int i = 0; i < documentChild.length(); i++) {
    child = documentChild.getJSONObject(i);

}

This is the valid JSON : Check validity here : http://jsonlint.com/

{
    "Items": [
        {
            "__type": "Section1:#com.test.example",
            "Info": {}
        },
        {
            "__type": "Section2:#com.test.example2",
            "Allergy": [
                {}
            ]
        }
    ]
}

Try :

public static final String TYPE_KEY = "__type";
public static final String TYPE1_VAUE = "Section1:#com.test.example";
public static final String TYPE2_VAUE = "Section2:#com.test.example2";


public static final String INFO_KEY = "Info";
public static final String ALLERGY_KEY = "Allergy";

....

String infoString = null;
JSONArray allergyArray = null;

for (int i = 0; i < documentChild.length(); i++) {
    child = documentChild.getJSONObject(i);

    final String typeValue = child.getString(TYPE_KEY);

    if(TYPE1.equals(typeValue)) {
        infoString = child.getString(INFO_KEY);
    }else if(TYPE2.equals(typeValue)) {
        allergyArray = child.getJSONArray(ALLERGY_KEY);
    }
}

if(null != infoString) {
    // access the 'Info' value in 'infoString'
}

if(null != allergyArray) {
    // access the 'Allergy' array in 'allergyArray'
}

...

Hope this helps!

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM