【问题标题】:Can't get a string from nested downloaded JSON [duplicate]无法从嵌套下载的 JSON 中获取字符串 [重复]
【发布时间】:2018-01-09 11:48:18
【问题描述】:

我正在从服务器获取 JSON:

                JSONObject vkjson = response.json;

我已尝试将其设为字符串并通过 LogCat 检查以确保其正常工作 - 是的,它 100% 正常工作。 但它是嵌套的:

{"response":{"first_name":"...","last_name":"..."} }

我已经尝试过这样做:

       String result = vkjson.getJSONObject("response").getString("first_name");

但 IDE 不喜欢 getJSONObject 部分并在其下划线。 IDE 说:

org.json.JSONException 中未处理的异常

怎么了?是因为JSON是从服务器加载的还是代码不正确?

提前谢谢你。

【问题讨论】:

    标签: android json android-studio


    【解决方案1】:

    org.json.JSONException 中未处理的异常

    意味着该方法可以抛出一个JSONException,你必须处理它。

    所以你必须:

    try {
         String result = vkjson.getJSONObject("response").getString("first_name");
    } catch (JSONException exception){
                //Handle exception here
    }
    

    【讨论】:

    • 啊,谢谢!我认为这意味着发送到方法的数据有问题
    【解决方案2】:

    除了不处理可能抛出的JSONException 之外,您的代码没有任何问题(即,如果没有名为“响应”的对象会发生什么)。

    您需要查看异常处理并将此代码包装在 try .. catch 块中或以其他方式处理异常。

    Java exception handling

    【讨论】:

      【解决方案3】:

      这样做-:

      try
      {
       JSONObject vkjson = response.json;
      
        //More code related to json
      }
      
      catch(JsonException e)
      {
         e.printStackTrace();
      }
      

      【讨论】:

        【解决方案4】:
                    JSONObject jsonObject = null;
                    try {
                        jsonObject = new JSONObject(responseString);
                        if(jsonObject != null)
                        {
                            if (jsonObject.has("response")) {
                                JSONObject responseObject = jsonObject.getJSONObject("response");
                                String firstName = responseObject.getString("first_name");
                                Log.d("Tag",firstName);
                            }
                        }
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
        

        【讨论】:

          猜你喜欢
          • 2017-10-25
          • 2016-04-30
          • 1970-01-01
          • 1970-01-01
          • 2015-02-07
          • 1970-01-01
          • 2015-08-28
          • 2022-07-07
          相关资源
          最近更新 更多