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