【问题标题】:Problem when sending jsonArray using socket.io Android使用socket.io Android发送jsonArray时出现问题
【发布时间】:2021-03-21 19:50:52
【问题描述】:

当我像这样通过套接字发送我的 JSONArray 对象时:

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

服务器将我的消息作为数组中的数组获取,例如:

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

我只想发送这个:

[ { lat: 31.476369999999996, long: 74.26562} ]

【问题讨论】:

    标签: android arrays json sockets socket.io


    【解决方案1】:

    使用自定义数组列表发送 json 数组的示例代码

    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)
    

    【讨论】:

    • 但这会将列表添加到“list_key_name_here”,我只需要发送一个数组,没有密钥。
    【解决方案2】:

    成功了

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-17
      • 1970-01-01
      • 2011-07-24
      • 2012-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-28
      相关资源
      最近更新 更多