Исключение json в приложении kotlin

Я пытаюсь прочитать файл JSON в приложении kotlin. Я могу прочитать json, но есть ошибка, она не заполняет массив. Когда он показывает исключение, я вижу результат json. Вот код:

fun read(){ val stringRequest = StringRequest(Request.Method.POST, URL, Response.Listener<String>{s -> try { val obj = JSONObject(s) if(!obj.getBoolean("error")){ val array = obj.getJSONArray("friend") for(i in 0..array.length()-1){ val objectFriend = array.getJSONObject(i) val friend = Friend(objectFriend.getString("name"), objectFriend.getString("surname")) listaPersonas.add(friend) } } }catch (e: JSONException){ e.printStackTrace() } },Response.ErrorListener { error: VolleyError? -> Log.e("error", "error") }) val requesQueue = Volley.newRequestQueue(this) requesQueue.add<String>(stringRequest) } 

Это исключение:

 org.json.JSONException: Value [value of json] of type org.json.JSONArray cannot be converted to JSONObject 09-30 22:25:06.241 17310-17310/com.example.user.kotlinjson W/System.err: at org.json.JSON.typeMismatch(JSON.java:111) 09-30 22:25:06.242 17310-17310/com.example.user.kotlinjson W/System.err: at org.json.JSONObject.<init>(JSONObject.java:160) 09-30 22:25:06.242 17310-17310/com.example.user.kotlinjson W/System.err: at org.json.JSONObject.<init>(JSONObject.java:173) 09-30 22:25:06.242 17310-17310/com.example.user.kotlinjson W/System.err: at com.example.smoreno.kotlinprueba.MainActivity$read$stringRequest$1.onResponse(MainActivity.kt:139) 09-30 22:25:06.242 17310-17310/com.example.smoreno.kotlinprueba W/System.err: at com.example.smoreno.kotlinprueba.MainActivity$read$stringRequest$1.onResponse(MainActivity.kt:22) 09-30 22:25:06.242 17310-17310/com.example.smoreno.kotlinprueba W/System.err: at com.android.volley.toolbox.StringRequest.deliverResponse(StringRequest.java:60) 09-30 22:25:06.242 17310-17310/com.example.smoreno.kotlinprueba W/System.err: at com.android.volley.toolbox.StringRequest.deliverResponse(StringRequest.java:30) 

Существует возможность получить JsonArray как ответ с пустым или нулевым значением, и вы пытаетесь использовать его как JsonObject. Попробуйте ввести код ниже.

замещать

 val obj = JSONObject(s) 

С

 if(s != null && s.isNotEmpty()) { val obj = JSONArray(s) // rest of code here } 
Intereting Posts