【发布时间】:2019-02-03 06:48:12
【问题描述】:
我有一个 Java 类:
public class Object1 {
private int field1;
private String field2;
private Object2 object2;
private boolean field3;
}
我已经使用 Gson 将一些 Object1 实例保存为 JSON 字符串:
String jsonString = new Gson().toJson(object1, Object1.class);
然后我在 Object1 类中添加了新的 String 字段:
public class Object1 {
private int field1;
private String field2;
private String field4;
private Object2 object2;
private boolean field3;
}
现在我无法使用方法将 json 字符串反序列化为 Object1 实例:
Object1 obj1 = new Gson().fromJson(jsonString, Object1.class);
因为 Gson 抛出异常:
System.err: com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: 应为字符串,但在第 1 行第 444 列路径 $.c 处为 BEGIN_OBJECT 在 com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:224) 在 com.google.gson.Gson.fromJson(Gson.java:887) 在 com.google.gson.Gson.fromJson(Gson.java:852) 在 com.google.gson.Gson.fromJson(Gson.java:801) 在 com.google.gson.Gson.fromJson(Gson.java:773)
但是为什么呢?我有一个没有一个字段的 JSON 字符串,这不是问题。为什么我不能反序列化它?
【问题讨论】:
-
发布你要反序列化的json
标签: java android json gson deserialization