0
私はREST Webサービスを起動し、JSON答えを得るAndroidアプリケーションを持っています。 間違ったパラメータを入力すると、問題なくエラーを捕捉できますが、JSONの結果がnullになることがあります。どのように私はその状況を把握できますか?AndroidでJSON nullの結果を取得するにはどうすればよいですか?
私のAndroidのコード:
try {
JSONObject jsonObj = new JSONObject(results);
JSONArray result = jsonObj.getJSONArray("result");
for (int i = 0; i < result.length(); i++) {
JSONObject c = result.getJSONObject(i);
String string04 = c.getString("string04");
String string05 = c.getString("string05");
TextView txt1 = (TextView)findViewById(R.id.textView1);
txt1.setText(string04);
TextView txt2 = (TextView)findViewById(R.id.textView2);
txt2.setText(string05);
JSONArray dest = c.getJSONArray("dest");
for (int o = 0; o < dest.length(); o++) {
JSONObject d = dest.getJSONObject(o);
JSONArray pred = d.getJSONArray("pred");
for (int u = 0; u < pred.length(); u++) {
JSONObject e = pred.getJSONObject(u);
String string13 = e.getString("string13");
TextView txt4 = (TextView)findViewById(R.id.textView4);
txt4.setText(string13);
}
}
}
} catch (JSONException e) {
e.printStackTrace();
Log.d("error", e.getMessage());
}
良いJSONの結果は次のようになります:
{
"result": [{
"string01": "104",
"string02": "104 - blablabla",
"string03": "104",
"string04": "blobloblo",
"string05": "blablabla",
"dest": [{
"pred": [{
"time": 1461348846,
"sec": 102,
"min": 1,
"string11": "514-String",
"string12": "Some String",
"string13": "Some other String",
"number": 0
}]
}]
}]
}
しかし、表示するデータがないとき時々、私はこのような何かを得る:
{
"result": [{
"string01": "104",
"string02": "104 - blablabla",
"string03": "104",
"string04": "blobloblo",
"string05": "blablabla",
"dest": [{"pred":[]}]
}]
}
対応するJSONArrayオブジェクトの長さをテストするだけで、空の配列のサイズは0になります。 –
リストが空の場合、 'pred'配列を超えるループは決して入力されません。ヌル。 –