[英]Unable to deserialize a complex JSON object using GSON
要將數據從服務器傳輸到客戶端,我使用 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:預期為 BEGIN_OBJECT,但在 com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:176) 的第 1 行第 287 列是 STRING。 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) 在 com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.read(TypeAdapterRuntimeTypeWrapper.java:40) 在 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) 在 com.goog le.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) 在 com.google.gson.Gson.fromJson(Gson.java:717) 在 com.google.gson.Gson.fromJson(Gson.java:689) 在 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:4) ) 在 java.lang.reflect.Method.invoke(Method.java:606) 在 org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:293) 在 java.lang.Thread.run(Thread.java :745) 引起:java.lang.IllegalStateException:預期為 BEGIN_OBJECT,但在 com.google.gson.stream.JsonReader.beginObject(JsonReader.java:374) 的第 1 行第 287 列處為 STRING。 bind.ReflectiveTypeAdapterFactory$Ada pter.read(ReflectiveTypeAdapterFactory.java:165) ... 19 更多
我認為問題來自“列表>”,有人可以告訴我如何反序列化它嗎?
[{"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"}]
我看到一個明顯的問題和其他一些潛在的雜項問題:
List<LinkedHashMap<Position, Character>>
以下是其他潛在問題:
Position
類是什么,它可能不匹配players
條目你可以試試
private List<LinkedHashMap<String, Character>> strokes;
代替
private List<LinkedHashMap<Position, Character>> strokes;
在字符串"2H:\\"null\\"" : "R"
,它將2H:"null"
視為鍵,將R
視為映射的值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.