1
我想從JSON反序列化成一個擴展LinkedHashMap與Gson的類。我能夠直接平凡做到這一點到LinkedHashMap中,但是當我嘗試使用子類LinkedHashMap中,我得到的錯誤反序列化到擴展LinkedHashMap與Gson的類
java.lang.IllegalStateException:預期BEGIN_OBJECT但STRING在1號線第3列路徑$。
的類型,我需要使用(我沒有這一點,所以沒有選擇使用別的):
public class ValueMap extends LinkedHashMap<CharSequence, Object> {}
我已經定義InstanceCreator來解決問題與CharSequence的。我試圖反序列化作爲一個基本的例子的JSON是:
{"people":[{"name":"name1","surname":"name2","age":12,"dogs":["spot","fluffy","batman"],"cars":[{"name":"name1","model":1933},{"name":"name2","model":343}]},{"name":"name2","surname":"name2","age":44,"dogs":["spot","test","jack"]}]}
更新,包括序列化/反序列化代碼:
GsonBuilder gsonBuilder = new GsonBuilder();
gsonBuilder.registerTypeAdapter(CharSequence.class, new CharSequenceInstanceCreator());
Gson gson = gsonBuilder.create();
String serialized = gson.toJson(value);
LinkedHashMap<CharSequence, Object> deserialized = gson.fromJson(serialized, ValueMap.class);
凡CharSequenceInstanceCreator樣子:
public static class CharSequenceInstanceCreator implements InstanceCreator<CharSequence> {
@Override
public CharSequence createInstance(Type arg0) {
return new String();
}
}
你還可以發佈,你怎麼實際上反序列化它? –
我們需要更多信息來幫助您,發佈您的類實現以及如何反序列化JSON字符串 – Marco
已更新,以包含反序列化代碼 – praetorian1