安卓在java中解析2d Json
正在尝试用java解析这种类型的json格式
{
"output": "success",
"result": [
{
"id": 1,
"label": "name",
},
{
"id": 2,
"label": "name_2",
}
]
}
我得到了这种类型的json格式,现在我要做的是首先检查ifoutput.equalsIgnoreCase("success)"
如果为true,然后解析结果的第二个数组。
这是我迄今为止尝试过的
try {
JSONArray myJson = new JSONArray(response);
String status = myJson.getString(Integer.parseInt("output"));
if(status.equalsIgnoreCase("success")) {
for (int i = 0; i < myJson.length(); i++) {
JSONObject obj = myJson.getJSONObject(i);
name.add(obj.getString("label"));
}
Log.e("list" , name.toString());
}
} catch (Exception e) {
}
# 1 楼答案
响应是一个JSONObject,而不是JSONArray(它被括在花括号中)。数组是名为result的字段。 因此,将myJson更改为JSONObject,并在检查success字段后, 创建一个新变量
并对其进行迭代,而不是myJson。此外,您不应该放弃该异常,因为stacktrace可以提供有关问题的一些提示。你可以加上
在抓块里
# 2 楼答案
Integer.parseInt("123")
可以Integer.parseInt("output")
不正常因为
Integer.parseInt()
解析整数的字符串表示形式。“输出”字符串不表示整数