私はJSON
次のようなものを持っています:
{
"notifications": {
"0": {
"id": "27429",
"uID": "6967",
"text": "Text 1"
},
"1": {
"id": "27317",
"uID": "6967",
"text": "Text 2"
},
"2": {
"id": "27315",
"uID": "6967",
"text": "Text 3"
},
"3": {
"id": "27314",
"uID": "6967",
"text": "Text 4"
},
"4": {
"id": "27312",
"uID": "6967",
"text": "Text 5"
}
}
}
応答から文字列を取り出してい"text"
ます。このため、コードは次のようになります。
JSONObject rootObj = new JSONObject(result);
JSONObject jSearchData = rootObj.getJSONObject("notifications");
int maxlimit = 4;
for (int i = 0; i < maxlimit; i++) {
JSONObject jNotification0 = jSearchData.getJSONObject("" + i + "");
String text = jNotification0.getString("text");
System.out.println("Text: " + text);
}
今のところ、これは完全に正常に動作します.4つすべて"text"
がlogs
.
さて、私の問題は、サーバーから 1 つまたは 2 つのデータしかない応答を受け取ると、次のようになることです。
{
"notifications": {
"0": {
"id": "27429",
"uID": "6967",
"text": "Only one text here"
}
}
}
次に、上記のロジックが失敗し、例外が発生しますorg.json.JSONException: No value for 1
どうすればこの問題を克服できますか。
あらゆる種類の助けをいただければ幸いです。