2011-07-18 10 views
13

Mam ciąg JSON, które wygląda następująco: {"altruism":1,"amazon":6}Analizować JSON ciąg do słownika <String, Integer> z Gson

Co chcę mieć to HashMap<String, Integer> z dwoma wpisami później.

Key: altruism Value: 1 
Key: amazon Value:6 

Naprawdę nie mogę wymyślić, jak to zrobić. Zwykle istnieją obiekty analizowane z ciągów JSON, ale tak nie jest w tym przypadku.

+1

Wyjaśnij, że JSON to nie Gson. JSON to format danych. Gson jest biblioteką Java do czytania i pisania JSON. –

Odpowiedz

18

Gson sprawia, że ​​to, co chcesz zrobić, jest stosunkowo łatwe. Poniżej znajduje się działający przykład.

// input: {"altruism":1,"amazon":6} 
String jsonInput = "{\"altruism\":1,\"amazon\":6}"; 

Map<String, Integer> map = new Gson().fromJson(jsonInput, new TypeToken<HashMap<String, Integer>>() {}.getType()); 
System.out.println(map); // {altruism=1, amazon=6} 
System.out.println(map.getClass()); // class java.util.HashMap 
System.out.println(map.keySet().iterator().next().getClass()); // class java.lang.String 
System.out.println(map.get("altruism").getClass()); // class java.lang.Integer 
Powiązane problemy