如何使用 Gson 将 JSON 转换为 HashMap?

新手上路,请多包涵

我正在从服务器请求数据,该服务器以 JSON 格式返回数据。在发出请求时将 HashMap 转换为 JSON 一点也不难,但另一种方式似乎有点棘手。 JSON 响应如下所示:

 {
    "header" : {
        "alerts" : [
            {
                "AlertID" : "2",
                "TSExpires" : null,
                "Target" : "1",
                "Text" : "woot",
                "Type" : "1"
            },
            {
                "AlertID" : "3",
                "TSExpires" : null,
                "Target" : "1",
                "Text" : "woot",
                "Type" : "1"
            }
        ],
        "session" : "0bc8d0835f93ac3ebbf11560b2c5be9a"
    },
    "result" : "4be26bc400d3c"
}

哪种方式最容易访问这些数据?我正在使用 GSON 模块。

原文由 Mridang Agarwalla 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 788
2 个回答

干得好:

 import java.lang.reflect.Type;
import com.google.gson.reflect.TypeToken;

Type type = new TypeToken<Map<String, String>>(){}.getType();
Map<String, String> myMap = gson.fromJson("{'k1':'apple','k2':'orange'}", type);

原文由 Tito 发布,翻译遵循 CC BY-SA 4.0 许可协议

此代码有效:

 Gson gson = new Gson();
String json = "{\"k1\":\"v1\",\"k2\":\"v2\"}";
Map<String,Object> map = new HashMap<String,Object>();
map = (Map<String,Object>) gson.fromJson(json, map.getClass());

原文由 Angel 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题