У меня возникли проблемы с разбором JSON, который я получаю из своей БД к моему приложению Java (Android). Я надеюсь, что вы можете помочь мне:Json Gson binding not working (Объект исключения/Строка)
Это Json, что у меня есть:
<br>
[{<br>
"ID" : "1",<br>
"name" : "Test name",<br>
"type" : "1",<br>
"Desc" : "blablabla",<br>
"minNum" : "0",<br>
"maxNum" : "12",<br>
"Num" : "8",<br>
"bool1" : "0",<br>
"bool2" : "1",<br>
"bool3" : "1",<br>
"date" : "2012-04-01 23:00:00",<br>
"double1" : "39.47208",<br>
"doubl2" : "-0.3556063",<br>
"someText" : "ajayeah",<br>
"number" : "15",<br>
"anotherNumber" : "1234"<br>
}, {"ID" : "2",<br>
"name" : "Test name",<br>
"type" : "1",<br>
"Desc" : "blablabla",<br>
"minNum" : "0",<br>
"maxNum" : "12",<br>
"Num" : "8",<br>
"bool1" : "0",<br>
"bool2" : "1",<br>
"bool3" : "1",<br>
"date" : "2012-04-01 23:00:00",<br>
"double1" : "39.47208",<br>
"doubl2" : "-0.3556063",<br>
"someText" : "ajayeah",<br>
"number" : "15",<br>
"anotherNumber" : "1234"<br>
}]<br>
(Имена ovbiously не те, которые я писал здесь: P)
У меня есть все, что, как Строка (отмечена, ОК), например, в переменной с именем responseString;
, а затем я пробовал все возможные способы сделать преобразование, но он всегда терпит неудачу. Я пытался получить его как объект удаления «[» «]», как Array (вещи, которые я достиг, а затем эта линия не может):
MyClassList MyClas = new Gson().fromJson(responseString, MyClassList.class);
Ошибка:
com.google.gson.JsonSyntaxException:
java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BEGIN_ARRAY
(с другими тестами, которые преобразуют его сначала в объект или массив, ошибка связана с BEGIN_STRING)
Может быть, потому, что я использую логические значения и тип календаря (в дате), и это не поддерживается библиотекой Gson?
Ну, надеюсь, вы можете убрать меня отсюда, потому что я схожу с ума.
Спасибо :)
Не используйте календарь, это была моя проблема. Вместо этого вы можете использовать Date, и он работает. Кроме того, я не знаю, почему, булевы типа «0» | «1» не работают. Как «true» | «false» да.
Боюсь, что это не сработало. Я получаю Json в String, хорошо сформированный как структура, которую я написал ранее, но делая это: MyClass test [] = gson.fromJson (responseString, MyClass []. Class); Не работает. Наконец-то я нахожу синтаксический анализатор самостоятельно, потому что, похоже, я не работаю так. Спасибо за ответ, хотя это не сработало для меня. – Sento
Извините, глупый телефон отрезал мой ответ. Вы пытались сделать это inline, как в моем примере, и сравнить строки json? Вам не нужно писать собственный синтаксический анализатор, поскольку это может ограничивать совместимость. Возможно, чтобы даты были временными, мы удаляем их в качестве теста. – TechTrip
Да, я нахожусь, но да. Структура Json одинакова (за исключением имен, но они соответствуют классу). Теперь я попытаюсь изменить дату Date Calendar и вырвать каждый странный персонаж (ú). Я скажу вам, что произошло за несколько минут – Sento