无法使用 volley 库比较 android 中“if”语句中的 JSON 字符串响应
Unable to compare the JSON String Response in the “if” Statement in android using volley library
我在字符串变量中得到 JSON 字符串响应。
我想在“if”语句中比较它。但是程序不能转到“if”语句。
但它在 TextView 中显示响应。
这是我的 if 语句
if (myObjAsString == "WRONG_PASS_ERROR") { //USER_EXISTS_ERROR //WRONG_PASS_ERROR
Toast.makeText(MainActivity.this, "Login Invalid", Toast.LENGTH_LONG).show();
}
这是我的代码。
String url = "http://someexample.com/signin.php";
StringRequest postRequest = new StringRequest(Request.Method.POST, url,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONObject jsonResponse = new JSONObject(response);
String myObjAsString = jsonResponse.getString("type");
if (myObjAsString == "WRONG_PASS_ERROR") { //USER_EXISTS_ERROR //WRONG_PASS_ERROR
Toast.makeText(MainActivity.this, "Login Invalid", Toast.LENGTH_LONG).show();
}
mTV.setText(myObjAsString);
} catch (JSONException e) {
e.printStackTrace();
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
error.printStackTrace();
}
}
) {
@Override
protected Map<String, String> getParams() {
Map<String, String> params = new HashMap<>();
// the POST parameters:
params.put("email", "example@outlook.com");
params.put("password", "*****");
return params;
}
};
Volley.newRequestQueue(this).add(postRequest);
使用equals
。 java.
中的对象比较是这样完成的
if (myObjAsString.equals("WRONG_PASS_ERROR"))
甚至这样也可以防止 npe:
if ("WRONG_PASS_ERROR".equals(myObjAsString))
为了比较字符串,您不使用“==”运算符,而是使用 equals() 方法。例如:if(string1.equals(string2))
使用下面的代码。
if (myObjAsString.equals("WRONG_PASS_ERROR")) // Change this condition
{
Toast.makeText(MainActivity.this, "Login Invalid", Toast.LENGTH_LONG).show();
}
我在字符串变量中得到 JSON 字符串响应。 我想在“if”语句中比较它。但是程序不能转到“if”语句。 但它在 TextView 中显示响应。
这是我的 if 语句
if (myObjAsString == "WRONG_PASS_ERROR") { //USER_EXISTS_ERROR //WRONG_PASS_ERROR
Toast.makeText(MainActivity.this, "Login Invalid", Toast.LENGTH_LONG).show();
}
这是我的代码。
String url = "http://someexample.com/signin.php";
StringRequest postRequest = new StringRequest(Request.Method.POST, url,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONObject jsonResponse = new JSONObject(response);
String myObjAsString = jsonResponse.getString("type");
if (myObjAsString == "WRONG_PASS_ERROR") { //USER_EXISTS_ERROR //WRONG_PASS_ERROR
Toast.makeText(MainActivity.this, "Login Invalid", Toast.LENGTH_LONG).show();
}
mTV.setText(myObjAsString);
} catch (JSONException e) {
e.printStackTrace();
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
error.printStackTrace();
}
}
) {
@Override
protected Map<String, String> getParams() {
Map<String, String> params = new HashMap<>();
// the POST parameters:
params.put("email", "example@outlook.com");
params.put("password", "*****");
return params;
}
};
Volley.newRequestQueue(this).add(postRequest);
使用equals
。 java.
if (myObjAsString.equals("WRONG_PASS_ERROR"))
甚至这样也可以防止 npe:
if ("WRONG_PASS_ERROR".equals(myObjAsString))
为了比较字符串,您不使用“==”运算符,而是使用 equals() 方法。例如:if(string1.equals(string2))
使用下面的代码。
if (myObjAsString.equals("WRONG_PASS_ERROR")) // Change this condition
{
Toast.makeText(MainActivity.this, "Login Invalid", Toast.LENGTH_LONG).show();
}