Считать строковое значение из объекта JSON и показать сообщение тоста - PullRequest
0 голосов
/ 11 мая 2018

Я использую Volley в своем приложении. После выполнения запроса JSONObject POST я получаю JSONObject в ответ, если пользователь найден. Если пользователь не найден, я получаю одно сообщение, поскольку пользователь не найден. Я хочу отобразитьToast сообщение, если пользователь не найден после анализа JSONObject.
Это ответ, если пользователь найден

{
        "name": ABC,
        "address": Pune,
        "status": "Married"
}  

Это ответ, если пользователь не найден

{
        "message":"User not Found"
}  

Этомой JSONObject POST-запрос

JsonObjectRequest request=new JsonObjectRequest(Request.Method.POST, url,jsonObject, new Response.Listener<JSONObject>() {
                @Override
                public void onResponse(JSONObject response) {
                    try {
                        String error=response.getString("message");
                        if(error.equals("User not Found")){
                            coolToast.make("User Not Found",CoolToast.INFO);
                            coolToast.setDuration(CoolToast.SHORT);
                        }
                         else{
                            coolToast.make("User Found",CoolToast.SUCCESS);
                            coolToast.setDuration(CoolToast.SHORT);
                        }

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

                }
            }, new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {

                }
            })  

Как отобразить тост после прочтения сообщения из JSONObject?

Ответы [ 3 ]

0 голосов
/ 11 мая 2018

Внутри блока try (первая строка) вы пытаетесь получить доступ к ключевому сообщению, которое недоступно для успешного ответа, в этом случае вы получите JSONException (catch block).

Сначала используйте .has(key), чтобы проверить, существует ли ключ.

Внутри ответа сначала проверьте, существует ли имя

if(response.has("name"){
//User found
}else{
//User not found
//now access message here as response.getString("message")
}
0 голосов
/ 11 мая 2018

Если вы хотите сохранить ту же структуру кода, вы можете использовать

String error=response.optString("message");

вместо

String error=response.getString("message");
0 голосов
/ 11 мая 2018

После создания Toast необходимо добавить метод show () Toast.В вашем случае добавьте coolToast.show ().

Спасибо.

...