मैं एक एंड्रॉइड ऐप पर काम कर रहा हूं जो "WebUntis" नामक एक webservice की जेसन सामग्री प्राप्त करता है। Json सामग्री मैं कैसी लगती है हो रही है:जावा में JSONArray खाली है या नहीं, यह जांचने के लिए कैसे करें?
{"jsonrpc":"2.0","id":"req-002",
"result":[
{"id":125043,"date":20110117,"startTime":800,"endTime":850,
"kl":[{"id":71}],
"te":[{"id":23}],
"su":[{"id":13}],
"ro":[{"id":1}]},
{"id":125127,"date":20110117,"startTime":1055,"endTime":1145,
"kl":[{"id":71}],
"te":[{"id":41}],
"su":[{"id":19}],
"ro":[{"id":31}]},
...]}
आप परिणाम सरणी में देखते हैं वहाँ भी कर रहे हैं "kl", "सु" और "ro"
मैं हो रही है जैसे अन्य सरणियों सकते हैं इन सरणी की सामग्री और फिर मैं उन्हें एक सरणी सूची में स्टोर करता हूं। लेकिन जब इनमें से एक सरणी खाली है, जैसे;
{"jsonrpc":"2.0","id":"req-002",
"result":[
{"id":125043,"date":20110117,"startTime":800,"endTime":850,
"**kl":[]**,
"te":[{"id":23}],
"su":[{"id":13}],
"ro":[{"id":1}]},
{"id":125127,"date":20110117,"startTime":1055,"endTime":1145,
"kl":[{"id":71}],
"te":[{"id":41}],
"su":[{"id":19}],
"ro":[{"id":31}]},
...]}
मैं हमेशा त्रुटि IndexOutOfRangeException
, हो रही है लेकिन मैं हमेशा यह कह रहा हूँ कि यह खाली सरणियों नहीं लेना चाहिए, यह मैं क्या करने की कोशिश की है:
JSONObject jsonResult = new JSONObject(s);
// Get the result object
JSONArray arr = jsonResult.getJSONArray("result");
for (int i = 0; i < arr.length(); i++) {
JSONObject c = arr.getJSONObject(i);
anfangStunde[i] = c.getString("startTime");
endeStunde[i] = c.getString("endTime");
// get the jsonarrays (kl, su, ro)
kl = c.getJSONArray("kl");
su = c.getJSONArray("su");
ro = c.getJSONArray("ro");
// check if kl is not null
if(kl != null){
klassenID[i] = kl.getJSONObject(0).getString("id");
}
if (klassenID[i] != null) {
klasse = webuntis.klassenMap.get(klassenID[i]);
Log.d("ID und Klasse=", "" + klassenID[i] + ";" + klasse);
}
// get th ids
fachID[i] = su.getJSONObject(0).getString("id");
if (fachID[i] != null) {
fach = webuntis.faecherMap.get(fachID[i]);
Log.d("ID und Fach=", "" + fachID[i] + ";" + fach);
}
// "Start;Ende;Klasse;Fach;Raum" store in arraylist
webuntis.stundenPlan.add(anfangStunde[i] + ";" + endeStunde[i] + ";" + klasse + ";" + fach);
// Write Data into a file for offline use:
}
कर सकते हैं
किसी को भी मदद मैं
अच्छा काम 'अगर (kl! = अशक्त && kl.length()> 0) {' सरल परीक्षण कर सकते हैं – marlonpya