0
我試圖反序列化JSON字符串轉換成Java對象,但我發現以下異常的有List對象:無法反序列化使用GSON
的JsonDeserializer com.google.gson.DefaultTypeAdapters $ CollectionTypeAdapter @ 306a30c7失敗所給出的類型類java.util.ArrayList到反序列化JSON對象[ 「93」]
我的主要文件:
public static void main(String[] args) throws IOException {
String s = "{\"intents\":[\"93\"],\"_id\":\"frequestQueries\"}";
Gson gson = new Gson();
JavaObject a = gson.fromJson(s, JavaObject.class);
System.out.println(a);
Ť他類應代表JSON是:
public class JavaObject {
public ArrayList intents;
private String _id ;
public JavaObject(){
intents = new ArrayList();
intents.add(93);
_id = "frequestQueries";
}
}
我試圖給出的解決方案SO上有類似異常,但我不能找出確切的原因。我試過this one,但似乎沒有給出具體的解決方案。我的Gson版本是1.4。
編輯:我已經更新了我的Gson到2.8.0,異常消失了。
看起來它不知道'93'的類型;嘗試'public ArrayList intents' –
Laazo
GSON 1.4於2010年3月24日發佈,您在定義ArrayList時未使用泛型 - 您使用的是哪個版本的Java? Java <= 4? – nickb
我正在使用java 8。 – chandresh