Gson到HashMap

有没有办法将包含JSON的string转换为HashMap,其中每个键是一个JSON键,值是JSON键的值? json没有嵌套的值。 我正在使用Gson库。

例如,给定JSON:

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

产生HashMap:

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

谢谢

按照GSON FAQ使用TypeToken

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

没有铸造。 没有不必要的对象创build

如果我用Map < Enum ,Object>使用TypeToken解决scheme,我会得到“重复键:null”。

对我来说最好的解决scheme是:

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