Android Can';无法从嵌套下载的JSON中获取字符串
我正在从服务器获取一个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
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();
}