因此,我正在Android Studio中构建一个Android应用程序,以获取具有登录功能的激动人心的网页。我已成功将应用程序连接到网站数据库,我可以登录并从服务器获得响应。应用程序在响应中查找错误值,但响应不包含错误值。
这是我的应用中的代码:
public void onResponse(String response) {
Log.d(TAG, "Login Response: " + response.toString());
hideDialog();
try {
JSONObject jObj = new JSONObject(response);
boolean error = jObj.getBoolean("error");
// Check for error node in json
if (!error) {
// user successfully logged in
// Create login session
session.setLogin(true);
// Launch main activity
Intent intent = new Intent(LoginActivity.this,
MainActivity.class);
startActivity(intent);
finish();
这是登录成功时服务器提供的响应:
Login Response: {"howislife":1,"rekeningnummer":"212220","soortuser":"student","datum":"05 Sep 2017"}
因此,当登录成功时,它会显示“howislife:1”,当密码或用户名不正确时,它会显示“howislife:2”或“howislife:3”。因此,我的Android应用中的代码需要检查“howislife”的值是什么。我怎样才能做到这一点?提前谢谢!
答案 0 :(得分:2)
试试这段代码,
int howislife = (!jsonObjects.isNull("howislife")) ?
jsonObjects.optInt("howislife") : 0;
if (howislife == 1) {
//login sucess
} else {
//login failed
}
答案 1 :(得分:1)
我假设你的api总是使用这些参数给出响应,如果响应是空或 null ,那么在转换为 JSONObject 之前检查它,那么你可以尝试下面的代码,它会工作。
JSONObject jObj = new JSONObject(response);
if(jObj.getInt("howislife")==1){
System.out.println("Login success");
}else{
System.out.println("Login fail");
}
答案 2 :(得分:0)
有一个功能" has()"在Android中检查JSONObject的键。
boolean has(String name) 如果此对象具有name的映射,则返回true。映射可能为NULL。
更多详情:
https://developer.android.com/reference/org/json/JSONObject.html#has(java.lang.String)
答案 3 :(得分:0)
我已经使用此代码解决了它,谢谢!
public void onResponse(String response) {
Log.d(TAG, "Login Response: " + response.toString());
hideDialog();
try {
JSONObject jObj = new JSONObject(response);
int login1 = jObj.getInt("howislife");
System.out.println(login1);
//Check for error node in json
if (login1 == 1) {
// user successfully logged in
// Create login session
session.setLogin(true);
// Launch main activity
Intent intent = new Intent(LoginActivity.this,
MainActivity.class);
startActivity(intent);
finish();
} else if(login1 == 2) {
Toast.makeText(getApplicationContext(), "Wachtwoord verkeerd", Toast.LENGTH_LONG).show();
} else if(login1 == 3) {
Toast.makeText(getApplicationContext(), "Gebruikersnaam of/en wachtwoord verkeerd", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(getApplicationContext(), "Er is iets fout gegaan, probeer opnieuw.", Toast.LENGTH_LONG).show();
}
} catch (JSONException e) {
// JSON error
e.printStackTrace();
}
}