#java #android #json #jsonserializer #json-serializable
#Ява #Android #json #jsonserializer #json-сериализуемый
Вопрос:
Я пытаюсь сериализовать приведенные ниже данные JSON на java
[{ "clear": "0", "default": ["123","234"], "mandatory": "1", "visible": "1" }]
мой класс сериализатора выглядит следующим образом,
public class HandleConfig{ @SerializedName("visible") private int visible; @SerializedName("clear") private int clear; @SerializedName("mandatory") private int mandatory; @SerializedName("default") private JSONArray def; // getter and setter methods here...
}
//вызов сериализатора
Gson gson1 = new Gson(); Type collectionType1 = new TypeTokenlt;Listlt;HandleConfiggt;gt;(){}.getType(); Listlt;HandleConfiggt; handleConfigurations = gson1.fromJson(object.toString(), collectionType1);
// ошибка
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 267 path $[0].default
Я ссылался на различные ответы на переполнение стека.. и я узнаю, почему это связано с тем, что сериализатор ожидает, что «по умолчанию» будет следующий формат
"default":[{ "id":123},{"id":124}]
но теперь мой вопрос в том, как сериализовать «defalut»:[«123″,»1234»] в массив JSON без каких-либо ошибок,
заранее спасибо.. 🙂
Ответ №1:
Пожалуйста, используйте это для анализа :
Listlt;Stringgt; def
вместо JSONArray def