字符串到JsonObject返回null

时间:2014-05-08 07:41:26

标签: android json

我有以下方法将样本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)

我不知道为什么,请帮我这个

2 个答案:

答案 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;
    }
}