2011-09-02 147 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);