Почему я не могу использовать if или включить jSONObject? - PullRequest
0 голосов
/ 02 мая 2018

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

@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();
    }
}

enter image description here

1 Ответ

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

Я полагаю, вы получаете 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;
            }
...