Android JsonObject的字符串返回null
我使用以下方法将示例Android JsonObject的字符串返回null,android,json,Android,Json,我使用以下方法将示例字符串解析为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
:
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;
}
答复如下:
{"m_tani":[{"tani_cd":"02","tani_nm":"cs"},{"tani_cd":"03","tani_nm":"pc"}]}
当我调试它时,从行jsonobjectjson=newjsonobject(responseData)
跳转到返回null
,而不是返回json代码>或捕获(异常e)
我不知道为什么,请帮我做这个试试这个代码
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;
}
}
当一个方法有多个返回点时,在逐步调试过程中会发生这种情况
当将java字节码转换为dalvik时,返回调用被合并(出于优化的原因?),并且当调试代码时,您可能会选择错误的字节码,或者调用多个字节码。但这并没有发生,您的代码是正确的,这只是调试时的显示方式
您可以查看更多参考您是否尝试实际打印结果,以查看函数返回的内容?Eclipse调试步骤可能在多个返回语句上以这种方式运行,但如果代码正确,该方法的输出仍然正确@Simulant,没有例外,这一点在问题中已经明确。我已经尝试了你的代码,并且发现工作正常。如果有,请发布更多详细信息。是否有可能在设备中删除旧代码,行号不匹配。跳转通常是由这个引起的。我卸载这个应用程序,然后重新安装,它工作正常。但是,我仍然不知道为什么。在第一行声明JSONObject
,并更改最后一行返回json代码>你是对的。尽管在调试时它会跳转到“returnnull;”语句。结果不是空的。如果有帮助,我很高兴。这是一件很烦人的事,但你可以习惯。最终,dalvik字节码中的步骤可能会被解释为它们的真正含义,而这个问题就消失了。请至少给出投票否决的理由