在我的json响应中,我得到了json数组,并且在其中有80个其他json对象,并且在每个对象中都有元素,而且一些对象也有JsonArray。那么如何检查json数组是否存在呢?
我也试过了optjsonarray,但它对我不起作用。
这是我的代码:
public static void insertMyDiaryValues(final JSONObject jobject)
throws Throwable {
String arrOfColumn[] = new String[] { "uuid", "date", "title", "diary",
"pictureurl", "pictureWidth", "pictureHeight", "child" };
try {
SmartTable DiaryData = null;
DiaryData = SmartApplication.REF_SMART_APPLICATION.getDataHelper()
.getTableList().get(DBTblNames.MyDiaryValues);
try {
JSONArray jarr = new JSONArray(jobject.getJSONArray("diary"));
for (int i = 0; i < jarr.length(); i++) {
// String childValue = ""
// + jarr.getJSONObject(i).getJSONArray("child").length();
// System.out.println("child Value :-"
// + jarr.getJSONObject(i).getJSONArray("child").length());
// if (!(childValue == null)) {
DiaryData.insertRow(
arrOfColumn,
new String[] {
jarr.getJSONObject(i).get("uuid")
.toString(),
jarr.getJSONObject(i).get("date")
.toString(),
jarr.getJSONObject(i).get("title")
.toString(),
jarr.getJSONObject(i).get("diary")
.toString(),
jarr.getJSONObject(i).get("pictureurl")
.toString(),
jarr.getJSONObject(i).get("pictureWidth")
.toString(),
jarr.getJSONObject(i).get("pictureHeight")
.toString(),
""
+ jarr.getJSONObject(i)
.getJSONArray("child")
.length()
});
}
} catch (Exception e) {
}
}
catch (Exception e) {
// TODO: handle exception
}
}
答案 0 :(得分:3)
只需使用try-catch案例检查:
try{
JSONArray jsonArray = jsonObject.getJSONArray("key");
}catch (JSONException e){
e.printStackTrace();
// here write your code to get value from Json object which is not getJSONArray.
}
答案 1 :(得分:1)
以下代码对我有用: -
public static void insertMyDiaryValues(final JSONObject jobject) {
String arrOfColumn[] = new String[] { "uuid", "date", "title", "diary",
"pictureurl", "pictureWidth", "pictureHeight", "child" };
try {
SmartTable DiaryData = null;
DiaryData = SmartApplication.REF_SMART_APPLICATION.getDataHelper()
.getTableList().get(DBTblNames.MyDiaryValues);
JSONArray jarr = new JSONArray(jobject.getJSONArray("diary")
.toString());
for (int i = 0; i < jarr.length(); i++) {
String child;
if (jarr.getJSONObject(i).has("child")) {
child = ""
+ jarr.getJSONObject(i).getJSONArray("child")
.length();
} else {
child = "0";
}
try {
DiaryData.insertRow(arrOfColumn,
new String[] {
jarr.getJSONObject(i).get("uuid")
.toString(),
jarr.getJSONObject(i).get("date")
.toString(),
jarr.getJSONObject(i).get("title")
.toString(),
jarr.getJSONObject(i).get("diary")
.toString(),
jarr.getJSONObject(i).get("pictureurl")
.toString(),
jarr.getJSONObject(i).get("pictureWidth")
.toString(),
jarr.getJSONObject(i).get("pictureHeight")
.toString(), child
});
} catch (Throwable e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
} catch (JSONException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (Throwable e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
} catch (Exception e) {
// TODO: handle exception
} catch (Throwable e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}