Android JsonObject - 我不知道该怎么做

时间:2015-08-14 08:24:38

标签: android json if-statement try-catch android-volley

我无法使用该方法中的数据。我不知道为什么。哪里出错了? 我有以下json:

{"code":"1","status":"Basarili","login":"OK","kullanici":"1"}

JSONObject veri_json;
try {
    veri_json = new JSONObject(response); 
    try {
        String code,status,login,kullanici;
        code = veri_json.getString("code").toString();
        status = veri_json.getString("status").toString();
        login = veri_json.getString("login").toString();
        kullanici = veri_json.getString("kullanici").toString();

        if(code=="1") {
            etKullanici.setText(status);
        }

    } 
    catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();  
    }
} 
catch (JSONException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

调试器注释:

  

代码=" 1"登录名=" OK"状态=" Basarili" kullanici =" 1"

但不起作用

if(code=="1") {
    etKullanici.setText(status);
}

我很抱歉我的英语不好。

3 个答案:

答案 0 :(得分:2)

你的变量"代码"是一个字符串。您需要检查值而不是参考。将其更改为:

if (code.equals("1"))

答案 1 :(得分:1)

JSONObject veri_json;                                 尝试{                                     veri_json = new JSONObject(response);

                                try {
                                    String code,status,login,kullanici;
                                    code = veri_json.getString("code");
                                    status = veri_json.getString("status");
                                    login = veri_json.getString("login");
                                    kullanici = veri_json.getString("kullanici");


                                    if(code.equalsIgnoreCase("1")) {
                                        etKullanici.setText(status);
                                    }

} catch (JSONException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                            }
                        } catch (JSONException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }

在上面的代码中,我必须在获取对象数据时删除toString。你必须尝试上面的代码,它像魅力

答案 2 :(得分:1)

您必须将字符串与

进行比较
String.equals()

像:

if (code.equals("1")) {...}

code ==“1”测试引用相等性(因此它永远不会返回true,因为“1”与新String(“1”)相同,它与代码不是同一个对象。