#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())