#android #json
#Android #json
Вопрос:
У меня есть фрагмент кода, который должен обрабатывать как JSONObject, так и JSONArray (он может возвращать любой из них). Это выдает мне исключение, когда я получаю объект вместо массива. Одно из решений — проверить, является ли первый символ { или a [, но я надеюсь на лучший вариант.
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;
Ответ №1:
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
;
Комментарии:
1. отлично! Я уже решал ее с помощью instanceof раньше, но ваш способ намного лучше