final ProgressDialog loading = ProgressDialog.show(Login.this, "Verifying", "Please wait...", false, false);
    StringRequest stringRequest = new StringRequest(Request.Method.POST, Config.LOGIN_URL,
    new Response.Listener<String>() {
    @Override
     public void onResponse(String response) {
     try {
      loading.dismiss();
      JSONArray jsonArray = new JSONArray(response);
      JSONObject jsonObject = jsonArray.getJSONObject(0);
      String code = jsonObject.getString("code");
         if (code.equals("login_failed")) {
             builder.setTitle("Login Error");
             displayAlert(jsonObject.getString("message"));
             } else {
               Intent intent = new Intent(Login.this, Success.class);
               Bundle bundle = new Bundle();
               bundle.putString("name", jsonObject.getString("name"));
               bundle.putString("email", jsonObject.getString("email"));
               intent.putExtras(bundle);
               startActivity(intent);

           }
        }
-1
Mohit Tripathi 16 ene. 2018 a las 13:05

3 respuestas

La mejor respuesta

Cambie Response.Listner<String> a JSONArray como el siguiente código

 new Response.Listener<JSONArray>() {
                                @Override
                                public void onResponse(JSONArray response) {
                                    try {
                                        loading.dismiss();
                                        JSONArray jsonArray=new JSONArray(response);
                                        JSONObject jsonObject=jsonArray.getJSONObject(0);
                                         String code=jsonObject.getString("code");
                                        if(code.equals("login_failed"))
                                        {

                                            builder.setTitle("Login Error");
                                            displayAlert(jsonObject.getString("message"));
                                        }
                                        else {

                                            Intent intent=new Intent(Login.this,Success.class);
                                            Bundle bundle=new Bundle();
                                            bundle.putString("name",jsonObject.getString("name"));
                                            bundle.putString("email",jsonObject.getString("email"));
                                            intent.putExtras(bundle);
                                            startActivity(intent);

                                        }
0
OmiK 16 ene. 2018 a las 10:36

Supongo que el valor en la variable response contiene algún otro valor que no sea la matriz.

Intente usar el objeto json e imprima / depure el valor.

new Response.Listener<String>() {
    @Override
    public void onResponse(String response) {
        try {
        loading.dismiss();
         JSONObject jsonObj = new JSONObject(response);
         }
        }
    }
0
Jithu S 16 ene. 2018 a las 10:18

Porque está intentando analizar datos de cadena en JSONArray .

Aquí

JSONArray jsonArray=new JSONArray(response);

Cambia esto a

JSONObject jsonObject =new JSONObject(response);
0
Tejas Pandya 16 ene. 2018 a las 10:15