У меня есть JSon строка:Синтаксического JSON в строку в Gson
{
"id":123,
"name":"",
"details":{}
}
Я хочу, чтобы разобрать к этому объекту:
class Student {
int id;
String name;
String details;
}
Это ошибка, я получаю:
java.lang.RuntimeException: Unable to start activity ComponentInfo{xxx.xxx/xxx.xxx.MainActivity}: com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected STRING but was BEGIN_OBJECT
Причина, по которой я хочу детализировать как строку не как JsonObject, потому что я использую объект Realm DB и сохраняю это в базе данных. Как я могу сказать Gson, что я хочу, чтобы строка details
являлась строкой.
Ваш «json» на самом деле не JSON - имена полей не в кавычках. Это должно быть '{" id ": 123," name ":" "," details ": {}}'. Это может быть все, что неправильно. Это поможет, если вы покажете короткую, но полную программу, демонстрирующую проблему, заметьте ... –
Вы можете взять объект JSON и преобразовать его в JSON String перед сохранением в БД, если вы задаете вопрос только по «деталям» ". –
'" details ": {}' несовместим с 'String details;' (это то, о чем говорит вам ошибка. Он ожидает String, но находит Object и bam.) – njzk2