Почему я не могу использовать if или включить jSONObject?

У меня просто AsyncTask, что использовать слушателя для связи с основным действием. При получении ответа первый тост будет показан с правильными значениями. Проблема в том, что в попробуй поймать я могу восстановить значения. Так что if или switch больше не работают.

@Override
public void OnAsyncTaskComplete(String response) {

    Toast.makeText(getContext(),((ActivityLogin) getActivity()).choiceButton+" result: "+response, Toast.LENGTH_LONG).show();

    try {

        JSONObject obj = new JSONObject(response);

        String objservice = obj.getString("service");
        String objstatuCode = obj.getString("status-code");
        String objdescription = obj.getString("status-description");

        JSONObject result = obj.getJSONObject("result");

        if (!objstatuCode.equals("200") || objstatuCode.equals(null)){
            Toast.makeText(getContext(), objstatuCode+"", Toast.LENGTH_SHORT).show();
            return;
        } else {
            Toast.makeText(getContext(), objstatuCode+"", Toast.LENGTH_SHORT).show();
            return;
        }

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

Почему я не могу использовать if или включить jSONObject?

поделитесь своим ответом json с вопросом

AskNilesh 02.05.2018 13:57

поделитесь ответом здесь

Sandeep Sankla 02.05.2018 14:02

сначала поменяйте местами свое условие, если (objstatuCode.equals (null) ||! objstatuCode.equals ("200")) {} и ваш код состояния является целым числом, используйте getInt

Sreedhu Madhu 02.05.2018 14:03

не работает то же самое

Giorgio Cafiso 02.05.2018 14:06
3
4
57
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я предполагаю, Вы получаете JSONException.

Почему?

Thrown to indicate a problem with the JSON API

Проблема исходит от

 String objstatuCode = obj.getString("status-code");
 JSONObject result = obj.getJSONObject("result");

Ваш JSON VALUE (KEY=status-code) - это int. Вы должны это исправить.

Это должно быть

int objstatuCode = obj.getInt("status-code");
String result    = obj.getString("result");

потом

if (objstatuCode!=200){
                Toast.makeText(getContext(), objstatuCode+"", Toast.LENGTH_SHORT).show();
                return;
            } else {
                Toast.makeText(getContext(), objstatuCode+"", Toast.LENGTH_SHORT).show();
                return;
            }

@GiorgioCafiso Clean-Rebuild и позвольте мне сообщить.

IntelliJ Amiya 02.05.2018 14:30

решено THX человек. ошибки заключались в том, что у меня был другой вызов в тех же достижениях, где результатом был массив

Giorgio Cafiso 02.05.2018 14:38

@GiorgioCafiso Двигайтесь вперед!

IntelliJ Amiya 02.05.2018 14:38

Другие вопросы по теме