Abhi Bardolia Abhi Bardolia - 4 months ago 10
JSON Question

Login Parameter in Json in Android

I want to Compare Parameters whether both username and password is true and if not then print something wrong in dialog box.Validation of Username and Password in android.when username not matches with password it should show dialog box that username is not true.

public class MainActivity extends
AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

final EditText id = (EditText) findViewById(R.id.loginid);
final EditText pass = (EditText) findViewById(R.id.loginpass);

Button b1 = (Button) findViewById(R.id.buttonlogin);
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String username = id.getText().toString();
String password = pass.getText().toString();
if (isNetworkAvailable()) {
RequestBody formBody = new FormBody.Builder()
.add("username", username)
.add("password", password)
.build();


try {
post(ConstantValues.BASE_URL, formBody, new Callback() {
@Override
public void onFailure(Call call, IOException e) {
Log.e("JSONDemo", "IOException", e);
}

@Override
public void onResponse(Call call, Response response) throws IOException {
String res = response.body().string();

Log.e("res", " " + res);
try {

JSONArray jsonarr = new JSONArray(res);

for (int i = 0; i < jsonarr.length(); i++) {


JSONObject jsonobj = jsonarr.getJSONObject(i);
final String namee = jsonobj.getString("FIRST_NAME");




Log.e("name", " " + namee);

}
runOnUiThread(new Runnable() {
@Override
public void run() {
// you can access all the UI componenet


}
});


} catch (Exception e) {
Log.e("JSONDemo", "onResponse", e);


}
}
});
} catch (Exception e) {
Log.e("JSONDemo", "Post Exception", e);
}


}
}
});
}


private boolean isNetworkAvailable() {
ConnectivityManager connectivityManager
= (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
return activeNetworkInfo != null && activeNetworkInfo.isConnected();
}


private final OkHttpClient client = new OkHttpClient();

Call post(String url, RequestBody formBody, Callback callback) throws IOException {

Request request = new Request.Builder()
.url(url)
.post(formBody)
.build();

Call call = client.newCall(request);
call.enqueue(callback);
return call;
}

public void showAlertDialog(String title, String message) {
final AlertDialog.Builder builder1 = new AlertDialog.Builder(MainActivity.this);
builder1.setTitle(title);
builder1.setMessage(message);
builder1.setCancelable(true);
builder1.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
dialogInterface.cancel();
}
});
runOnUiThread(new Runnable() {
@Override
public void run() {
builder1.show();

}

});
}
}

Answer

Apply below code for your response method:

  @Override
  public void onResponse(Call call, Response response) throws IOException {

     String res = response.body().string();

     Log.e("res", " " + res);

      try {

             JSONArray jsonarr = new JSONArray(res);

             for (int i = 0; i < jsonarr.length(); i++) {


                JSONObject jsonobj = jsonarr.getJSONObject(i);

                final String result = jsonobj.getString("SUCCESS");

                String namee = "";

                if(result.equals(“1”)
                {
                    namee = jsonobj.getString("FIRST_NAME");
                }
                else
                {
                    namee = "Invalid Username or Password";
                }

                Log.e("name", " " + namee);

             }
             runOnUiThread(new Runnable() {

                 @Override
                 public void run() {
                    // you can access all the UI componenet
                 }
           });

       } catch (Exception e) {
           Log.e("JSONDemo", "onResponse", e);
  }