如何解决如何在Java中读取嵌套的JSON列表?
我需要获取类型值和networkUsage下载值,并且列表是动态的
Json Response是
{
"count": 2,"devices": [
{
"name": "xyz","type": 1,"subType": 0,"signalStrength": -37,"dataUsage": {
"download": 84,"upload": 84
},"networkUsage": {
"download": 0,"upload": 0
},"speed": {
"download": 0,"upload": 0
}
},{
"name": "abcd","type": 2,"upload": 0
}
}
]
}
我尝试过这种方式,但出现错误。
JSONArray jsonarray = new JSONArray(response);
System.out.println(String.format("JSONArray length => %d",jsonarray.length()));
for (int i = 0; i < jsonarray.length(); i++) {
JSONObject obj1 = jsonarray.getJSONObject(i);
String name = obj1.getString("name");
int type = obj1.getInt("type");
System.out.println(name);
System.out.println(type);
}
线程“ main” org.json.JSONException中的异常:JSONArray文本必须以org.json.JSONArray.org.json.JSONTokener.syntaxError(JSONTokener.java:496)字符1处的'['开始。 org.json.JSONArray。(JSONArray.java:159)的com.calix.pages.test.main(test.java:91)的JSONArray.java:115)
解决方法
JSONObject jsonobj = new JSONObject(response);
JSONArray jsonarray = jsonobj.getJSONArray("devices");
for (int i = 0; i < jsonobj.getInt("count"); i++) {
JSONObject obj1 = jsonarray.getJSONObject(i);
String name = obj1.getString("name");
int type = obj1.getInt("type");
System.out.println(name);
System.out.println(type);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。