【发布时间】:2017-07-18 14:04:15
【问题描述】:
以上是我从 url 收到的 json 响应。在没有父 json 数组的同一级别的响应中有重复的 json 对象,我相信这些对象应该在一个 josn 数组中,以便可以循环访问对象以访问它们的信息。
真的是缺少json数组的错误吗?如果不是,那么在这种情况下如何循环并接收信息。感谢您的时间和帮助。
【问题讨论】:
-
你可以从对象中创建数组
以上是我从 url 收到的 json 响应。在没有父 json 数组的同一级别的响应中有重复的 json 对象,我相信这些对象应该在一个 josn 数组中,以便可以循环访问对象以访问它们的信息。
真的是缺少json数组的错误吗?如果不是,那么在这种情况下如何循环并接收信息。感谢您的时间和帮助。
【问题讨论】:
在这种情况下如何循环接收信息?
对于这种情况,您应该使用 ITERATOR。
仅供参考
迭代器是一种在集合对象上遍历数据的方法。
JSONObject jOBJECT = new JSONObject(success);
Iterator iteratorObj = jOBJECT.keys();
while (iteratorObj.hasNext())
{
String getJsonObj = (String)iteratorObj.next();
System.out.println("Key: " + Key + "------>" + getJsonObj); // 78,40,121,132
}
【讨论】:
这是服务响应中此类对象模式的详细解决方案。
【讨论】:
这段代码或许能帮到你:
try {
String data="";//this is you json
JSONObject jsonObject=new JSONObject(data);
JSONArray messages = jsonObject.getJSONArray("message");//get a array
//loop the arrat to output
for (int i = 0; i < messages.length(); i++) {
JSONObject msg=messages.getJSONObject(i);
String id= msg.getString("id");
String username= msg.getString("username");
System.out.println("id:"+id+",username:"+username);
}
} catch (JSONException e) {
e.printStackTrace();
}
但是,我建议你不要在你的项目中使用这个,你可以考虑Gson,使用这个你可以将json转成java模型,然后就很容易使用了。
【讨论】:
message 不是数组。