Gson to HashMap

Есть ли способ конвертировать строку, содержащую json, в HashMap, где каждый ключ является json-ключом, а значением является значение json-key? Json не имеет вложенных значений. Я использую Gson lib.

Например, учитывая JSON:

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

Результат HashMap:

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

благодаря

Solutions Collecting From Web of "Gson to HashMap"

Используйте TypeToken , в соответствии с FAQ GSON :

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

Нет литья. Нет ненужного создания объекта.

Если я использую решение 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} 

Мне нравится:

 private static class MyMap extends HashMap<String,String> {}; ... MyMap map = gson.fromJson(json, MyMap.class);