2011-09-02 5 views
1

이 내 PHP는 에코 인코딩 JSON입니다 : 내가 응용 프로그램에서 사용할GSON 및 JSON 역 직렬화

{"detail1":{"key1":"value1","key2":"value2","key3":"value3"},"detail2":["elementone","elementtwo","elementthree"],"detail3":["element1","element2","element3"]} 

GSON 명령은 다음과 같습니다

Gson gson = new Gson(); 
ParseActivity.parsedata = gson.fromJson(result, new TypeToken < HashMap < String , Object>>(){}.getType()); 

그러나 GSON가 jsonparseexception을주고 수 없습니다입니다 parseedata는 동일한 유형의 정적 변수입니다.

어떤 도움을 주셔서 감사합니다.

답변

3

반환 유형에 더 명시해야합니다. 필드 detail1Map<String, String>이고 기타 필드는 List<String>입니다. 당신은 정확히 그 필드 래퍼 클래스 (자바 빈즈)를 만들어야합니다 다음과 같이 사용할 수 있습니다

public class Details { 
    private Map<String, String> detail1; 
    private List<String> detail2; 
    private List<String> detail3; 

    // Add/generate getters/setters. 
} 

있도록 :

Details details = new Gson().fromJson(result, Details.class); 

을 다른 방법으로, GSON는 JsonElement로 변환 할 수 있습니다 트리를 사용하면 수동으로 트래버스 할 수 있습니다.

JsonElement details = new Gson().toJsonTree(result);