Проблема при отправке JSONArray с использованием сокета.ввод-вывод Android

#android #arrays #json #sockets #socket.io

#Android #массивы #json #сокеты #socket.io

Вопрос:

Когда я отправляю свой объект JSONArray через сокет следующим образом:

 val json = JSONArray()
....
socket?.emit(EVENT, json)
 

сервер получает мое сообщение в виде массива внутри массива, например:

 [ [ { lat: 31.476369999999996, long: 74.26562} ], 'Function0<kotlin.Unit>' ]
 

Я хочу отправить только это:

 [ { lat: 31.476369999999996, long: 74.26562} ]
 

Ответ №1:

Пример кода для отправки массива json с использованием пользовательского arraylist

 var obj: JSONObject? = null
        val jsonArrayLatLng = JSONArray()
    for (i in 0 until list!!.size) {
            obj = JSONObject()
            try {
                obj.put("lat", list.get(i).lat)
                obj.put("long", list.get(i).lng)
                
            } catch (e: JSONException) { 
                e.printStackTrace()
            }
            jsonArrayLatLng.put(obj)
        }
val jsonObject = JSONObject()
jsonObject.put("list_key_name_here", jsonArrayLatLng)
socket?.emit(EVENT, jsonObject)
 

Комментарии:

1. но это добавит список в «list_key_name_here», мне просто нужно отправить массив без ключа.

Ответ №2:

Это сработало

 socket?.emit(EVENT, jsonArray.toTypedArray())