Анализ JSON на теле ошибки (исключение JSON) org. json.JSONException: конец ввода в символе 0 - PullRequest
0 голосов
/ 02 ноября 2018

Я получаю сообщение об ошибке. json.JSONException: конец ввода в символе 0 Это мой код: -

JSONObject jObjError = new JSONObject(response.errorBody().string());
Log.e("Error","::"+jObjError.getString("error_codes"));

а это мой JSON

{
    "errors":{
        "provider":["already has an appointment scheduled at this time."]
    },
    "error_codes":["provider_unavailable"]
}

Может ли кто-нибудь помочь мне с этим

Ответы [ 2 ]

0 голосов
/ 02 ноября 2018

Если response - ваш возвращенный JSON, вы должны передать его напрямую, так как параметр имеет тип String

JSONObject jo=new JSONObject(response);

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

0 голосов
/ 02 ноября 2018

Ключевым моментом здесь является то, что вы пытаетесь получить строку из массива, а не непосредственно из объекта. Правильный способ синтаксического анализа это было бы:

JSONObject jObjError = new JSONObject(response.errorBody().string());
JSONArray errorArray = jObjError.optJSONArray("error_codes");
for(int i = 0;i<errorArray.size;i++) {
Log.e("Error","::"+errorArray.get(i));
}
...