【问题标题】:I want to get value inside my String JsonObject我想在我的 String JsonObject 中获得价值
【发布时间】:2018-06-12 04:05:21
【问题描述】:
    try {
        JSONObject jobj = new JSONObject(response);
        String status = jobj.getString("status");
        String error = jobj.getString("result");

        if(status == "1"){
            builder.setTitle("Server Message");
            builder.setMessage("Please validate your ID in registered email.");

        }else if(status == "0")
        {
            builder.setTitle("Server Message");
            builder.setMessage(error);
        }else{
            builder.setTitle("Server Message");
            builder.setMessage(response);
        }

    } catch (JSONException e) {
        e.printStackTrace();
    }

    builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            Intent mainIntent = new Intent(RegisterActivity.this, LoginActivity.class);
            startActivity(mainIntent);
        }
    });

    AlertDialog alertDialog = builder.create();
    alertDialog.show();
}

我的回答是 {"status":"1","re​​sult":"true") 但是如果“状态”的其他内容意味着我无法在状态中获得“1”的值,我将无法做到。

【问题讨论】:

  • 您应该为您的 json 响应创建 POJO 类,并且您应该使用您的对象属性访问它。

标签: android arrays json


【解决方案1】:

两个错误

  1. 获取整数和布尔值作为字符串
  2. 比较字符串与==

这样做

int status = jobj.getInt("status");
Boolean error = jobj.getBoolean("result");

if(status == 1){
    builder.setTitle("Server Message");
    builder.setMessage("Please validate your ID in registered email.");
}else if(status == 0) 
{
    ...
    ...

【讨论】:

  • @Avezan 它会自动解析。查看JSONObject类中getInt(String name)的代码
  • 是的,在你的尝试中它会自动解析,而不是他的。无论如何答案是正确的+1。
  • 感谢 +1。那是 OP 的错误,如果可以的话,我们应该提出更好的解决方案。
【解决方案2】:

"==" 是参考比较。 所以,将“==”替换为equals()

status.equals("1")

【讨论】:

    【解决方案3】:

    我希望这对你有用。

    通过使用字符串

     String status = jobj.getString("status");
        String error = jobj.getString("result");
    
       if(status.equalsIgnoreCase("1")){
          builder.setTitle("Server Message");
         builder.setMessage("Please validate your ID in registered email.");
    
        }else if(status.equalsIgnoreCase("0")){
            // your other code.
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-02-11
      • 2021-01-07
      • 2014-11-15
      • 1970-01-01
      • 2020-06-30
      • 1970-01-01
      • 1970-01-01
      • 2021-12-29
      相关资源
      最近更新 更多