為什么來自Json的GSON拋出一個JsonSyntaxException我試圖將一些JSON內(nèi)容反序列化為一個自定義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文本轉(zhuǎn)換為我的POJO類型?
2 回答

一只名叫tom的貓
TA貢獻1906條經(jīng)驗 獲得超3個贊
class Pojo { NestedPojo nestedPojo;}
NestedPojo[] nestedPojo;
String json = "{\"nestedPojo\":{\"name\":null, \"value\":42}}";
添加回答
舉報
0/150
提交
取消