【问题标题】:Android JsonObject -- I do not know what to do [duplicate]Android JsonObject - 我不知道该怎么做[重复]
【发布时间】:2015-08-14 08:24:38
【问题描述】:

我无法使用方法中的数据。我不知道为什么。哪里出错了? 我有以下 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();
}

调试器说明:

code="1" login="OK" status="Basarili" kullanici="1"

但是没用

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

对不起,我的英语不好。

【问题讨论】:

  • 您是否尝试过在 Google/Bing 上搜索“如何比较 Java 中的字符串”?

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


【解决方案1】:

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

if (code.equals("1"))

【讨论】:

    【解决方案2】:

    JSONObject veri_json; 尝试 { veri_json = new JSONObject(响应);

                                    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。你必须尝试上面的代码,它就像魅力一样

    【讨论】:

      【解决方案3】:

      您必须将字符串与

      进行比较
      String.equals()
      

      喜欢:

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

      code == "1" 测试引用相等(所以它永远不会返回 true,因为 "1" 与 new String("1") 相同,它与 code 不是同一个对象。

      【讨论】:

        猜你喜欢
        • 2017-05-05
        • 1970-01-01
        • 1970-01-01
        • 2014-02-28
        • 2022-01-08
        • 2022-11-17
        • 2019-02-11
        • 2013-07-15
        • 1970-01-01
        相关资源
        最近更新 更多