Я использую gson для разбора ответа JSON. Код отлично подходит для надлежащего ответа JSON. Однако, если ответ JSON пустой массив, мой код продолжает жаловаться «Ожидал begin_object но получил end_array»Разбор пустой массив Json с использованием gson
JSON response
{
"list" : {
"data" : [
]
}
}
Мой код
try {
jsonReader.beginArray();
do{
jsonReader.beginObject();
while(jsonReader.hasNext()){
// Parse all data
jsonReader.endObject();
} while(jsonReader.hasNext());
jsonReader.endArray();
} catch (IOException e) {
//Exception
}
Я знаю, что значит, что выше исключение, это просто означает, что он ожидал, что объект внутри массива будет обработан. Но поскольку это пустой массив, он дает исключение.
Но я посмотрел на руководство апи, и нет никаких методов, чтобы проверить, является ли JSON является пустой массив или следующий объект в входном потоке объект или конец массива и т.д.
Может ли одно сказать мне такие методы существуют в GSON API. Или как мы можем справиться с этой проблемой?
EDIT: Я изменил ответ, который я получил от сервера.
надеюсь, что это поможет: http://stackoverflow.com/questions/12380927/deserializing-an-object-that-contains-json-using-gson –
Вы уверены, что ответ JSON '{[]}'? Потому что это неправда JSON ... что-то вроде этого: '{" list ": []}' звучит лучше ... если это последнее, я могу вам помочь ... – MikO
Да. Поставщик JSON изменил ответ от сервера. Я отредактировал оригинальную запись –