Android Can';无法从嵌套下载的JSON中获取字符串

Android Can';无法从嵌套下载的JSON中获取字符串,android,json,android-studio,Android,Json,Android Studio,我正在从服务器获取一个JSON: JSONObject vkjson = response.json; 我试着让它成为一个字符串,并通过LogCat进行检查,以确保它能工作——是的,它100%能工作。 但它是嵌套的: {"response":{"first_name":"...","last_name":"..."} } 我尝试过这样做: String result = vkjson.getJSONObject("response").getSt

我正在从服务器获取一个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是从服务器加载的还是代码不正确


提前感谢您。

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

您需要查看异常处理,并将此代码包装为
try。。catch
阻止或以其他方式处理异常

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

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

因此,你必须:

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

try
{
 JSONObject vkjson = response.json;

  //More code related to json
}

catch(JsonException e)
{
   e.printStackTrace();
}

啊,谢谢你!我认为这意味着将数据发送到方法时出现了问题
            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();
            }