java - GSON JSON 映射

标签 java json gson

请帮我拔掉头发。

使用 GSON 读取从我的 PHP Web 服务返回的 JSON 输入。

简化(测试)JSON 如下所示:

{"Posts":[{"post":{"Areaid":"1"}},{"post":{"Areaid":"2"}}]}

代码如下:

 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;
    }

Area 类如下:

public class Area {
    public String Areaid;
}

但是当我调用viewAreas()时我得到:

java.lang.IllegalStateException: Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 2

我尝试了很多不同的方法,即 Map<String,List<Area>> , List<Map<String,List<Area>>>但我似乎无法正确映射 JSON 响应。

有什么帮助或建议吗?

最佳答案

看起来应该是Map<String,List<Map<String,Area>>> ,但我以前从未使用过 GSON :)

关于java - GSON JSON 映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20913252/

相关文章:

java - java 远程 gui 实现的推荐方法

java - 如何检索 JSONObject 子字段?

php - 如何在 php 中从此 JSON 获取元素

java - 改造 2.0 + GSON + Android : Unable to invoke no-args constructor for interface retrofit2. http.Body

java - retorfit2 如何让这个 json 正确?

java - 删除组件后使框布局居中

java - LWJGL displayMode() 的问题

Java 错误消息 "Cannot be resolved to a variable"?

javascript - 我可以输出 JSON,其中 ID 是键,而不是 ASP.NET MVC 中的数组(C#)

java - GSON从json文件到对象