2012-03-26 3 views
0

일부 JSON 개체를 구문 분석하기 위해 GSON을 살펴 보았습니다. 그러나이 특정 JSON 오브젝트는 다음과 같은 색인 : 변수 이름에인덱싱 된 JSON을 구문 분석하는 GSON

나의 이해에서
{ 
    { 
     "1": 
      {"name":"Mike","age":"27"}, 
     "2": 
      {"name":"Sarah","age":"23"}, 
     "3": 
      {"name":"Jenny","age":"19"}, 
     "4": 
      {"name":"Joe","age":"24"}, 
     "5": 
      {"name":"Bob","age":"21"}, 

      ...and so on 
    } 
} 

, 각 키에 대응을 적절한 GSON 객체.

public class Person { 
    private String name; 
    private int age; 
} 

그러나,이 경우, 어떻게 "1", "2", "3", "4"처리됩니다 예를 들어, "5", 나는이 같은 클래스를 가질 것 , "5"? 여러 개의 인덱스가있을 수 있으므로 변수 이름을 "1", "2", "3", "4"및 "5"로 지정할 수 없습니다 (가변 명명 규칙에 위배됩니다). 이 경우 GSON이 나를 도울 수 있습니까?

답변

3

지도로 직렬화를 시도하십시오. 매개 변수가있는 유형에 대한 참조를 얻으려면 Gson의 TypeToken 클래스를 사용해야합니다.

Type type = new TypeToken<Map<String, Person>>() {}.getType(); 
Map<String, Person> people = gson.fromJson(json, type); 
+0

이것은 완벽합니다. 고맙습니다! – Dan

관련 문제