2011-10-31 3 views
2

나는 목록이나 arraylist로 json 문자열을 구문 분석하려고합니다. 나는 다음과 같은 JSON 응답 내가 여기에 GSON 결과를 구문 분석 여러 예를 읽은목록에 안드로이드 gson 비 직렬화

[ 
    { 
     "Class": "Lorem", 
     "Company": "Ipsum", 
     "Id": "XXXX", 
     "Name": "Avent" 
    }, 
    { 
     "Class": "Consectetur", 
     "Company": "Adipiscing", 
     "Id": "YYYYY", 
     "Name": "Nulla" 
    } 
] 

안드로이드 프로젝트를 위해 만든 WCF RESTful 서비스에서오고있다,하지만 난 컨테이너 클래스를 제정 어려움을 겪고있어 내가 본 것처럼. 하나의 결과를 Group 클래스로 읽어 들였지만 어떤 종류의 List 또는 ArrayList로 파싱 할 수는 없습니다.

그룹 클래스 :

public class Group { 

    private String Id; 
    private String Name; 
    private String Class; 
    private String Company; 
} 

그룹 컨테이너 클래스 :

public class Groups { 
    private List<Group> GRP; 
} 

GSON 구문 분석 문 :

Groups GRP = gson.fromJson(jsonString, Groups.class); 

내가 jsonString의 일부 조작을 할 필요가 않았다가 보여주는 때문에 (쉼표 뒤에) 문자열의 일부 공백을 추가하고 제거한 후 작업을 시작합니다. 동쪽으로 단일 요소로 파싱합니다. 그게 효과가 있는지는 모르겠지만 내가 언급 할 것 같아서.

또한, 나는()} {()> .getType을

유형이 listType = 새로운 TypeToken을 시도; gson.toJson (myStrings, listType);

하지만 그 중 하나가 작동하지 않는 것, 그리고 그것이 내 상황에 필요한지 모르겠다.

답변

4
List<Group> groups = gson.fromJson(jsonString, new TypeToken<List<Group>>() {}.getType()) 
+0

나는 이전에 그렇게 해 봤으면 좋겠다고 맹세했습니다. 나는 컨테이너 클래스가 필요 없다고 생각한다. listview에 필드 중 하나를 표시하고 싶다면 list 또는 arraylist를 만드는 것이 가장 좋을까요? 나는 필드를 문자열 []에 넣어 listview 어댑터에 전달해야한다는 인상하에있다. –

+0

"이름"필드를 목록보기에 표시하는 방법을 알아 내려고하고 있습니다. –