要將數據從服務器傳輸到客戶端,我使用GSON,實際上我能夠獲得JSON字符串,但在反序列化時出現錯誤。如果有人能幫助我,我應該心存感激......無法使用GSON反序列化複雜的JSON對象
JSON字符串
{ "id" : 0,
"maxPlayers" : 0,
"racks" : [ "EIORSSU",
"CEKOPRV",
"PVEELV?",
"VAAEIR?",
"BDENOTT",
"DNEEIIO",
"EEIOBLU",
"EODFLST",
"DSTAAEL",
"EEIMNOS",
"GINRRSU",
"AEENTWX",
"EENTIQU",
"ADEGHJT",
"GHCEGMU",
"GGMAINP",
"AGPFRTU",
"FGANORY",
"FGNORLM",
"GLMNHIS",
"HLMNANZ",
"AHLMN",
"ALM",
"L"
],
"strokes" : [ { "2H:\"null\"" : "R",
"3H:\"null\"" : "O",
"4H:\"null\"" : "U",
"5H:\"null\"" : "I",
"6H:\"null\"" : "S",
"7H:\"null\"" : "S",
"8H:\"null\"" : "E"
},
{ "2C:\"null\"" : "R",
"2D:\"null\"" : "O",
"2E:\"null\"" : "C",
"2F:\"null\"" : "K",
"2G:\"null\"" : "E",
"2H:\"null\"" : "R"
},
{ "4G:\"null\"" : "P",
"5G:\"null\"" : "L",
"6G:\"null\"" : "E",
"7G:\"null\"" : "u",
"8G:\"null\"" : "V",
"9G:\"null\"" : "E"
},
{ "10F:\"null\"" : "E",
"11F:\"null\"" : "R",
"12F:\"null\"" : "A",
"13F:\"null\"" : "I",
"7F:\"null\"" : "l",
"8F:\"null\"" : "A",
"9F:\"null\"" : "V"
},
{ "14D:\"null\"" : "B",
"14E:\"null\"" : "O",
"14F:\"null\"" : "T",
"14G:\"null\"" : "T",
"14H:\"null\"" : "E"
},
{ "10E:\"null\"" : "D",
"8E:\"null\"" : "N",
"9E:\"null\"" : "I"
},
{ "3A:\"null\"" : "B",
"3B:\"null\"" : "L",
"3C:\"null\"" : "E",
"3D:\"null\"" : "U",
"3E:\"null\"" : "I"
},
{ "10D:\"null\"" : "O",
"11D:\"null\"" : "F",
"12D:\"null\"" : "E",
"9D:\"null\"" : "L"
},
{ "13H:\"null\"" : "D",
"13I:\"null\"" : "E",
"13J:\"null\"" : "T",
"13K:\"null\"" : "A",
"13L:\"null\"" : "L",
"13M:\"null\"" : "A",
"13N:\"null\"" : "S"
},
{ "10L:\"null\"" : "I",
"11L:\"null\"" : "N",
"12L:\"null\"" : "O",
"13L:\"null\"" : "L",
"14L:\"null\"" : "E",
"7L:\"null\"" : "S",
"8L:\"null\"" : "E",
"9L:\"null\"" : "M"
},
{ "2I:\"null\"" : "S",
"3I:\"null\"" : "U",
"4I:\"null\"" : "R"
},
{ "6M:\"null\"" : "W",
"7M:\"null\"" : "A",
"8M:\"null\"" : "X"
},
{ "10H:\"null\"" : "I",
"10I:\"null\"" : "N",
"10J:\"null\"" : "Q",
"10K:\"null\"" : "U",
"10L:\"null\"" : "I",
"10M:\"null\"" : "E",
"10N:\"null\"" : "T",
"10O:\"null\"" : "E"
},
{ "10O:\"null\"" : "E",
"11O:\"null\"" : "T",
"12O:\"null\"" : "A",
"7O:\"null\"" : "D",
"8O:\"null\"" : "E",
"9O:\"null\"" : "J"
},
{ "3A:\"null\"" : "B",
"4A:\"null\"" : "U",
"5A:\"null\"" : "C",
"6A:\"null\"" : "H",
"7A:\"null\"" : "E"
},
{ "10C:\"null\"" : "M",
"11C:\"null\"" : "I",
"12C:\"null\"" : "N",
"13C:\"null\"" : "G"
},
{ "4K:\"null\"" : "P",
"5K:\"null\"" : "A",
"6K:\"null\"" : "R",
"7K:\"null\"" : "U",
"8K:\"null\"" : "T"
},
{ "11G:\"null\"" : "A",
"12G:\"null\"" : "Y"
},
{ "5J:\"null\"" : "F",
"6J:\"null\"" : "O",
"7J:\"null\"" : "R"
},
{ "4C:\"null\"" : "G",
"4D:\"null\"" : "I",
"4E:\"null\"" : "S"
},
{ "12I:\"null\"" : "N",
"13I:\"null\"" : "E",
"14I:\"null\"" : "Z"
},
{ "12M:\"null\"" : "H",
"13M:\"null\"" : "A",
"14M:\"null\"" : "N"
},
{ "1B:\"null\"" : "M",
"1C:\"null\"" : "A"
}
],
"timeout" : 0
}
目標類:
Class Game {
private int id;
private String name;
private int timeout;
private int maxPlayers;
private List<String> racks;
private List<LinkedHashMap<Position, Character>> strokes;
private List<Player> players;}
我得到這個錯誤:
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 287 at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:176) at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.read(TypeAdapterRuntimeTypeWrapper.java:40) at com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter.read(MapTypeAdapterFactory.java:186) at com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter.read(MapTypeAdapterFactory.java:145) at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.read(TypeAdapterRuntimeTypeWrapper.java:40) at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.read(CollectionTypeAdapterFactory.java:81) at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.read(CollectionTypeAdapterFactory.java:60) at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:93) at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:172) at com.google.gson.Gson.fromJson(Gson.java:803) at com.google.gson.Gson.fromJson(Gson.java:768) at com.google.gson.Gson.fromJson(Gson.java:717) at com.google.gson.Gson.fromJson(Gson.java:689) at fr.univtln.groupec.dupliword_server.main.Serveur.main(Serveur.java:87) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:293) at java.lang.Thread.run(Thread.java:745) Caused by: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 287 at com.google.gson.stream.JsonReader.beginObject(JsonReader.java:374) at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:165) ... 19 more
我想問題來自「List>」,有人可以告訴我如何反序列化這個?
[{"2H:\"null\"":"R","3H:\"null\"":"O","4H:\"null\"":"U","5H:\"null\"":"I","6H:\"null\"":"S","7H:\"null\"":"S","8H:\"null\"":"E"},{"2C:\"null\"":"R","2D:\"null\"":"O","2E:\"null\"":"C","2F:\"null\"":"K","2G:\"null\"":"E","2H:\"null\"":"R"},{"4G:\"null\"":"P","5G:\"null\"":"L","6G:\"null\"":"E","7G:\"null\"":"u","8G:\"null\"":"V","9G:\"null\"":"E"},{"7F:\"null\"":"l","8F:\"null\"":"A","9F:\"null\"":"V","10F:\"null\"":"E","11F:\"null\"":"R","12F:\"null\"":"A","13F:\"null\"":"I"},{"14D:\"null\"":"B","14E:\"null\"":"O","14F:\"null\"":"T","14G:\"null\"":"T","14H:\"null\"":"E"},{"8E:\"null\"":"N","9E:\"null\"":"I","10E:\"null\"":"D"},{"3A:\"null\"":"B","3B:\"null\"":"L","3C:\"null\"":"E","3D:\"null\"":"U","3E:\"null\"":"I"},{"9D:\"null\"":"L","10D:\"null\"":"O","11D:\"null\"":"F","12D:\"null\"":"E"},{"13H:\"null\"":"D","13I:\"null\"":"E","13J:\"null\"":"T","13K:\"null\"":"A","13L:\"null\"":"L","13M:\"null\"":"A","13N:\"null\"":"S"},{"7L:\"null\"":"S","8L:\"null\"":"E","9L:\"null\"":"M","10L:\"null\"":"I","11L:\"null\"":"N","12L:\"null\"":"O","13L:\"null\"":"L","14L:\"null\"":"E"},{"2I:\"null\"":"S","3I:\"null\"":"U","4I:\"null\"":"R"},{"6M:\"null\"":"W","7M:\"null\"":"A","8M:\"null\"":"X"},{"10H:\"null\"":"I","10I:\"null\"":"N","10J:\"null\"":"Q","10K:\"null\"":"U","10L:\"null\"":"I","10M:\"null\"":"E","10N:\"null\"":"T","10O:\"null\"":"E"},{"7O:\"null\"":"D","8O:\"null\"":"E","9O:\"null\"":"J","10O:\"null\"":"E","11O:\"null\"":"T","12O:\"null\"":"A"},{"3A:\"null\"":"B","4A:\"null\"":"U","5A:\"null\"":"C","6A:\"null\"":"H","7A:\"null\"":"E"},{"10C:\"null\"":"M","11C:\"null\"":"I","12C:\"null\"":"N","13C:\"null\"":"G"},{"4K:\"null\"":"P","5K:\"null\"":"A","6K:\"null\"":"R","7K:\"null\"":"U","8K:\"null\"":"T"},{"11G:\"null\"":"A","12G:\"null\"":"Y"},{"5J:\"null\"":"F","6J:\"null\"":"O","7J:\"null\"":"R"},{"4C:\"null\"":"G","4D:\"null\"":"I","4E:\"null\"":"S"},{"12I:\"null\"":"N","13I:\"null\"":"E","14I:\"null\"":"Z"},{"12M:\"null\"":"H","13M:\"null\"":"A","14M:\"null\"":"N"},{"1B:\"null\"":"M","1C:\"null\"":"A"}]
你得到什麼錯誤? [你有什麼嘗試](http://whathaveyoutried.com)? – David
JSON數據是有效的,如果有人想知道 –
我認爲類成員必須以與JSON數據相同的順序指定。 – rrirower