Reputation: 23634
{
"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);
}
Upvotes: 0
Views: 124
Reputation: 1677
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!
Upvotes: 2