问题描述
||
我有一段代码需要同时处理JSONObject和JSONArray(它可能会返回两者)。当我收到一个对象而不是一个数组时,它引发了一个异常。一种解决方案是检查第一个字符是否为{或[,但是我希望有一个更好的字符。
JSONObject responseMsgObject = new JSONObject(dummyJson);
if (responseMsgObject.has(\"messages\")) {
String successstring = responseMsgObject.getString(\"response\");
if (successstring.equalsIgnoreCase(\"SUCCESS\")) {
JSONArray messageArray = responseMsgObject
.getJSONArray(\"messages\");
return messageArray;
}
} else
return null;
解决方法
JSONObject responseMsgObject = new JSONObject(dummyJson);
if (responseMsgObject.has(\"messages\")) {
String successString = responseMsgObject.getString(\"response\");
if (successString.equalsIgnoreCase(\"SUCCESS\")) {
JSONArray messageArray = responseMsgObject
.optJSONArray(\"messages\"); //optJSONArray returns null if doesnt exist or is not a JSONArray
if(messageArray!=null){
return messageArray;
}
}
}
else
return null
;