Gson 到 HashMap

2022-08-31 20:07:25

有没有办法将包含json的字符串转换为HashMap,其中每个键都是json键,值是json键的值?json 没有嵌套值。我正在使用Gson lib。

例如,给定的 JSON:

{
"id":3,
"location":"NewYork"
}

生成的哈希映射:

<"id", "3">
<"location", "NewYork">

谢谢


答案 1

使用TypeToken,根据GSON常见问题解答

Gson gson = new Gson();
Type stringStringMap = new TypeToken<Map<String, String>>(){}.getType();
Map<String,String> map = gson.fromJson(json, stringStringMap);

无铸造。无需创建不必要的对象。


答案 2

如果我将TypeToken解决方案与Map<Enum,Object>我会得到“duplicate key:null”。

对我来说,最好的解决方案是:

String json = "{\"id\":3,\"location\":\"NewYork\"}";
Gson gson = new Gson();
Map<String, Object> map = new HashMap<String, Object>();
map = (Map<String, Object>)gson.fromJson(json, map.getClass());

结果:

{id=3.0, location=NewYork}

推荐