我正在尝试将JSON字符串反序列化为Java对象,但我遇到以下异常:
在给定类型类java.util.ArrayList
的情况下,JsonDeserializer com.google.gson.DefaultTypeAdapters$CollectionTypeAdapter@306a30c7无法反序列化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,异常消失了。
答案 0 :(得分:0)
我正在为我自己的问题发布解决方案,因为很多人在像this one这样的Gson反序列化中使用Arraylist
时遇到了同样的问题。只需更新Gson版本,即可解决Gson deserialization
问题。