【问题标题】:Android JSON ObjectAndroid JSON 对象
【发布时间】:2012-01-07 19:22:04
【问题描述】:

我有这样的 JSON 格式

{"response":{"status":true,"result":"user_exists"}}

现在我正在尝试检索状态值来执行一些逻辑

JSONObject jData = new JSONObject(data);
JSONArray response = jData.getJSONArray("response");

但我收到以下错误

org.json.JSONException: 值 {"result":"user_exists","status":true} org.json.JSONObject 类型的响应无法转换为 JSON数组

如何从内部和对象中检索对象?

【问题讨论】:

    标签: android json arrays


    【解决方案1】:

    你必须先通过

    导航到响应对象

    JSONObject response = jData.getJSONObject("response") 而不是JSONArray,因为响应是一个对象。

    【讨论】:

      【解决方案2】:

      response 不是数组而是对象。使用getJSONObjectJSONObject 而不是getJSONArrayJSONArray

      【讨论】:

        【解决方案3】:

        response 是 JSONObject,而不是 JSONArray。数组对象被这些[] 括号包围,对象与普通对象{}(有关更多格式信息,请参阅json.org

        改变

        JSONArray response = jData.getJSONArray("response");
        

        JSONObject response = jData.getJSONObject("response");
        

        【讨论】:

          【解决方案4】:

          您正在尝试从 JSONArray 检索状态属性,但是您的代码中没有任何 JSONArray ,( JSONArray[] 包围,JSONObject 被 @ 包围987654326@) , 所以要检索状态值,试试这个:

          JSONObject jData = new JSONObject(data);
          JSONObject response = jData.getJSONObject("response");
          
          boolean status = response.getBoolean("status");
          

          【讨论】:

            猜你喜欢
            • 2011-11-14
            • 2015-04-28
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2023-03-05
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多