这是json编码我的php echos:
{"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是一个相同类型的静态变量。
感谢您的帮助
答案 0 :(得分:3)
您需要在返回的类型中更明确。字段detail1
是Map<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);