[英]GSON JSON Mapping
Please I need help about to pull my hair out. 我需要帮助才能拔掉头发。
Using GSON to read JSON input returned from my PHP web service. 使用GSON读取从我的PHP Web服务返回的JSON输入。
simplified (test) JSON looks like: 简化(测试)JSON看起来像:
{"Posts":[{"post":{"Areaid":"1"}},{"post":{"Areaid":"2"}}]}
{ “信息”:[{ “后”:{ “areaID表示”: “1”}},{ “后”:{ “areaID表示”: “2”}}]}
Code look like this: 代码看起来像这样:
public void viewAreas() throws Exception {
List<Map<String, Area>> map=viewAreaResponseToMap("{\"Posts\":[{\"post\":{\"Areaid\":\"1\"}},{\"post\":{\"Areaid\":\"2\"}}]}");
for (Map<String, Area> map1 : map) {
for (Map.Entry<String, Area> entry : map1.entrySet()) {
String string = entry.getKey();
System.out.println(string);
Area list = entry.getValue();
System.out.println(list.Areaid);
}
}
}
private List<Map<String, Area>> viewAreaResponseToMap(String response) throws Exception {
List<Map<String, Area>> map = new Gson().fromJson(response, new TypeToken<List<Map<String, Area>>>() {
}.getType());
return map;
}
with the Area class like: 与Area类一样:
public class Area {
public String Areaid;
}
However when I call viewAreas()
I get: 但是,当我调用
viewAreas()
我得到:
java.lang.IllegalStateException: Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 2
java.lang.IllegalStateException:预期BEGIN_ARRAY但在第1行第2列是BEGIN_OBJECT
I have tried many different ways ie Map<String,List<Area>>
, List<Map<String,List<Area>>>
but I just cant seem to map the JSON response correctly. 我尝试了很多不同的方法,即
Map<String,List<Area>>
, List<Map<String,List<Area>>>
但我似乎无法正确映射JSON响应。
Any help or advice? 任何帮助或建议?
看起来应该是Map<String,List<Map<String,Area>>>
,但我以前从未使用过GSON :)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.