【问题标题】:Json reponse with repeated json objects without parent json arry具有重复 json 对象的 Json 响应,没有父 json 数组
【发布时间】:2017-07-18 14:04:15
【问题描述】:

以上是我从 url 收到的 json 响应。在没有父 json 数组的同一级别的响应中有重复的 json 对象,我相信这些对象应该在一个 josn 数组中,以便可以循环访问对象以访问它们的信息。

真的是缺少json数组的错误吗?如果不是,那么在这种情况下如何循环并接收信息。感谢您的时间和帮助。

【问题讨论】:

  • 你可以从对象中创建数组

标签: java android json


【解决方案1】:

在这种情况下如何循环接收信息?

对于这种情况,您应该使用 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
            }

【讨论】:

  • 感谢@Amiya,它看起来不错,我觉得它对我有用,让我尝试将其设置为正确的。
【解决方案2】:

这是服务响应中此类对象模式的详细解决方案。

https://stackoverflow.com/a/12870643/1925394

【讨论】:

    【解决方案3】:

    这段代码或许能帮到你:

    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 不是数组。
    • @Mr.jie 我在我的问题中提到没有涉及 json 数组。
    猜你喜欢
    • 1970-01-01
    • 2014-08-16
    • 2014-07-02
    • 2018-07-02
    • 1970-01-01
    • 2014-04-20
    • 2017-03-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多