有没有一种方法可以将包含JSON的字符串转换为HashMap,其中每个键都是JSON键,值是JSON键的值?该JSON没有嵌套值。我正在使用Gson库。
例如,给定JSON:
{
"id":3,
"location":"NewYork"
}
生成的HashMap:
<"id", "3">
<"location", "NewYork">
谢谢
java.lang.reflect.Type stringStringMap = new com.google.gson.reflect.TypeToken<Map<String, String>>(){}.getType();
这段代码的作用是定义一个名为 stringStringMap
的变量,它的类型是 java.lang.reflect.Type
。该变量存储了一个 Map<String, String>
类型的对象,并使用了 Google Gson 库中的 TypeToken
类来获取该类型的信息。 - stackoverflowuser2010Map<String, Object>
,那么你将得到正确类型的值。 - Xaero Degreaz如果我在使用TypeToken解决方案时,使用Map<Enum, Object>会出现“重复键: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}
我喜欢:
private static class MyMap extends HashMap<String,String> {};
...
MyMap map = gson.fromJson(json, MyMap.class);
TypeToken
呢? - Eric WilsonTypeToken
,但我非常频繁地使用Jackson中的等效功能。 - Matt Ball