我有以下方法将样本String
解析为JSONObject
:
private JSONObject test() {
try {
String responseData = "{\"m_tani\":[{\"tani_cd\":\"02\",\"tani_nm\":\"cs\"},{\"tani_cd\":\"03\",\"tani_nm\":\"pc\"}]}";
Log.i("Json", responseData.toString());
JSONObject json = new JSONObject(responseData);
return json;
} catch (Exception e) {
e.printStackTrace();
Log.i("Json", "exception");
}
Log.i("Json", null);
return null;
}
responseData是:
{"m_tani":[{"tani_cd":"02","tani_nm":"cs"},{"tani_cd":"03","tani_nm":"pc"}]}
当我调试它时,从JSONObject json = new JSONObject(responseData);
行跳转到return null;
,而不是return json;
或catch(Exception e)
。
我不知道为什么,请帮我这个
答案 0 :(得分:0)
当您从方法中有多个返回点时,会在逐步调试期间发生这种情况。
将java字节码转换为dalvik时,返回调用是合并的(出于优化原因?),当您调试代码时,您可能会找到错误的代码,或者调用多个代码。但是,这并没有发生,你的代码是正确的,它只是调试时的样子。
您可以查看this post以获取更多参考资料
答案 1 :(得分:-2)
试试这段代码
private JSONObject test() {
try {
String responseData = "{\"m_tani\":[{\"tani_cd\":\"02\",\"tani_nm\":\"cs\"},{\"tani_cd\":\"03\",\"tani_nm\":\"pc\"}]}";
Log.i("Json", responseData.toString());
JSONObject json = new JSONObject(responseData);
return json;
} catch (JSONException e) {
e.printStackTrace();
Log.i("Json", "exception");
return null;
}
}