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