2014-03-31 5 views
0

어떻게이 JSON을 GSON을 사용하여 파싱 할 수 있습니까?GSON을 사용하여 키 - 객체 JSON 구문 분석

{ 
    "1" : [ 
     { 
      "id" : 1, 
      "images" : [ 
       {}, 
       {}, 
       ... 
      ] 
     }, 
     {}, 
     ... 
    ], 
    "2" : [ 
      {}, 
     {}, 
     ... 
    ], 
    ... 
} 

구문 분석 방법이 부족했습니다. 지도를 사용하려고했지만 객체가 null이었습니다.

내 클래스 : 내가 잘못 무엇

public class Root { 
    private HashMap<Integer, FirstObject> objects; 
} 

public class FirstObject { 
    private List<SecondObject> objects; 
} 

public class SecondObject { 
    private int id; 
    private List<Image> images; 
} 

public class Image { 
    ... 
} 

?

+0

기본적으로 아무 것도하지 않으므로 잘못 될 수 없습니다. 전체 코드를 게시하십시오. – cheseaux

+1

루트 클래스에서는 새로운 클래스를 만들 필요가 없다고 생각합니다. ArrayList 형식의 public vars를 작성해야합니다. – HCarrasko

+0

json.org로 이동하여 JSON 구문을 익히십시오. 그런 다음 JSON "배열"은 Java List이고 JSON "객체"는 Java Map임을 이해하십시오. 표준 JSON 파서는 어떤 방향없이 위의 내용이 나타내는지도 목록을 생성 할 수 있어야합니다. 그런 다음 마음의 내용을 따를 수 있습니다. 위의 구조에 대해 자신 만의 객체를 정의하는 것은 객체가지도와 목록 만 포함하므로 추가 오버 헤드에 불과합니다. –

답변

1
public class Root { 
    @SerializedName("1") 
    @Expose 
    private List<Album> _1 = new ArrayList<Album>(); 

    @SerializedName("2") 
    @Expose 
    private List<Album> _2 = new ArrayList<Album>(); 

    ... 
} 

내 문제를 해결합니다.

1

JSON에서 Java 클래스를 생성하는 도구를 사용하십시오. 비슷한 것 JSONSchema2Pojo

관련 문제