我的json字符串看起来像这样
{“company_id”:[1,“test”]}
但它可能是
{“company_id”:false}
的某个时候。如果它是一个jsonArray,我可以很容易地解析它,但是当它返回布尔值时会出现异常。怎么解析呢?
Logcat:
01-22 06:52:09.512:W / System.err(6532):org.json.JSONException:Value 在java.lang.Boolean类型的company_id处的false无法转换为 JSONArray 01-22 06:52:09.516:W / System.err(6532):at org.json.JSON.typeMismatch(JSON.java:100)01-22 06:52:09.516: W / System.err(6532):at org.json.JSONObject.getJSONArray(JSONObject.java:553)
答案 0 :(得分:1)
使用try块检查是否成功:
try {
JSONObject jsonObject = new JSONObject(json);
try {
boolean bool = jsonObject.getBoolean("company_id");
Log.e("TAG", "It's a boolean: " + bool);
} catch (JSONException e) {
JSONArray array = jsonObject.getJSONArray("company_id");
Log.e("TAG", "It's an array: " + array);
}
} catch (JSONException e) {
e.printStackTrace();
}
答案 1 :(得分:1)
您可以使用try/catch
尝试获取JSONArray
,如果抛出异常,请尝试获取Bool
。