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字节码中的步骤可能会被解释为它们的真正含义,而这个问题就消失了。请至少给出投票否决的理由