为什么来自Json的GSON抛出一个JsonSyntaxException我试图将一些JSON内容反序列化为一个自定义POJO类型Gson#fromJson(String, Class).这段代码import com.google.gson.Gson;public class Sample {
public static void main(String[] args) {
String json = "{\"nestedPojo\":[{\"name\":null, \"value\":42}]}";
Gson gson = new Gson();
gson.fromJson(json, Pojo.class);
}}class Pojo {
NestedPojo nestedPojo;}class NestedPojo {
String name;
int value;}抛出以下异常Exception in thread "main" com.google.gson.JsonSyntaxException: java.lang.IllegalStateException:
Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 16 path $.nestedPojo
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:200)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:103)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:196)
at com.google.gson.Gson.fromJson(Gson.java:810)
at com.google.gson.Gson.fromJson(Gson.java:775)
at com.google.gson.Gson.fromJson(Gson.java:724)
at com.google.gson.Gson.fromJson(Gson.java:696)
at com.example.Sample.main(Sample.java:23)Caused by: java.lang.IllegalStateException:
Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 16 path $.nestedPojo
at com.google.gson.stream.JsonReader.beginObject(JsonReader.java:387)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:189)
... 7 more为什么gson不能正确地将我的JSON文本转换为我的POJO类型?
2 回答

一只名叫tom的猫
TA贡献1906条经验 获得超3个赞
class Pojo { NestedPojo nestedPojo;}
NestedPojo[] nestedPojo;
String json = "{\"nestedPojo\":{\"name\":null, \"value\":42}}";
添加回答
举报
0/150
提交
取消