【问题标题】:JSON Array or Object Error in AndroidAndroid 中的 JSON 数组或对象错误
【发布时间】:2013-02-15 20:58:23
【问题描述】:

我有一个从名为 data 的 HttpClient 返回的字符串。

Data = {"result":[{"id":"2","contextID":"1","name":"Kitchen","image":"81"},
{"id":"1","contextID":"1","name":"Living Room","image":"18"},
{"id":"3","contextID":"1","name":"Toilet","image":"75"}]}

然后我正在执行此代码:

resultArray = new JSONArray (data);

并返回此 JSONArray。但是,我收到 JSONException 错误:

JSONObject cannot be converted to JSONArray

这肯定是 JSONArray 而不是 JSONObject?或者它是 JSONObjects 的 JSONObject?我对 JSON 很陌生,我想循环使用这些导入的值创建新的位置。有没有一种简单或成熟的方法来做到这一点?

非常感谢。

【问题讨论】:

    标签: android json


    【解决方案1】:

    Data 是一个 JSONObject,Data["result"] 是一个包含 JSONObjects 的 JSONArray。

    【讨论】:

    • 非常感谢您的帮助!
    【解决方案2】:

    它是一个 json 对象,其中包含 JSONObjects 的 JSONArray。 { } 表示对象,[] 表示数组。因此,您将顶级字符串作为 JSON 对象获取,然后将 results 参数作为数组获取,然后将结果中的每个索引作为对象获取(您可以通过 getString 等获取这些参数的参数)。

    【讨论】:

      【解决方案3】:

      数据实际上是一个JSONObject,其中包含一个名为“结果”的JSONArray。如果您想获得JSONArray,您必须执行以下操作:

      JSONObject dataObj = new JSONObject(data);
      JSONArray dataArr = dataObj.getJSONArray("result");
      

      为了将来参考,由于您是 JSON 新手,{} 大括号内的数据是 JSONObject,[] 大括号内的数据是 JSONArray。数组和对象可以相互嵌套,有时很难阅读。如果您需要帮助阅读数据,我建议您格式化数据。我个人使用http://jsonformatter.curiousconcept.com/ 来格式化和验证我的数据。我与该网站没有任何关联。我只是觉得它真的很有用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-08-02
        • 1970-01-01
        • 1970-01-01
        • 2016-08-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多