2011-09-02 197 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而不能解析,parsedata是一個相同類型的靜態變量。

感謝您的任何幫助

回答

3

您需要更加明確的返回類型。字段detail1Map<String, String>,其他字段是List<String>。你需要與這些人恰恰領域創建一個包裝類(一個JavaBean):

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);