Я получаю JSON с разной структурой. Один - с галереей, а другой нет.JSON с разной структурой - Android
Первый JSON: (без галереи)
{
"id": "12345",
"title": "titletitle",
"fulltext": "texttext",
"related_articles":[
{
"id": "12346",
"title": "titletitle",
"image_name": "www.example.com/img1.png"
},
{
"id": "12347",
"title": "titletitle",
"image_name": "www.example.com/img2.png"
}
]
}
Второй JSON (с галереей)
{
"id": "12345",
"title": "titletitle",
"fulltext": "texttext",
"gallery": [
"www.example.com/img1.png",
"www.example.com/img1.png",
"www.example.com/img1.png",
"www.example.com/img1.pngg",
"www.example.com/img1.png"
],
"related_articles":[
{
"id": "12346",
"title": "titletitle",
"image_name": "www.example.com/img1.png"
},
{
"id": "12347",
"title": "titletitle",
"image_name": "www.example.com/img2.png"
}
]
}
Я помещаю этот JSON в массив так:
data = whole JSON file, which I get from web service
JSONObject jRealObject = new JSONObject(data);
title = jRealObject.getString("title").toString();
text = jRealObject.getString("fulltext").toString();
JSONArray jArray = jRealObject.getJSONArray("gallery");
for (int i = 0; i < jArray.length(); i++) {
gallery.add(jArray.getString(i));
}
JSONArray jArray = jRealObject.getJSONArray("related_articles");
for (int i = 0; i < jArray.length(); i++) {
jRealObject = jArray.getJSONObject(i);
relatedId[i] = jRealObject.getString("id").toString();
relatedTitle[i] = jRealObject.getString("title").toString();
relatedImage[i] = jRealObject.getString("image_name").toString();
}
Так когда я получаю JSON с галереей, он отлично работает, но когда в статье нет галереи, я получаю исключение:
W/System.err(30635): org.json.JSONException: No value for gallery
Как проверить, есть ли «галерея» в JSON ??
возможно дубликат [Проверьте, существует ли объект в JSON] (http://stackoverflow.com/questions/10049415/check-if-an-object-exists -in-json) – mccannf