【发布时间】:2021-11-03 16:25:56
【问题描述】:
我与 toJson 一起使用的类
class LoadUserDTO: Serializable {
@SerializedName("userGuid")
var userGuid: String? = null
@SerializedName("userToken")
var userToken: String? = null
constructor(userGuid: String, userToken: String) {
this.userGuid = userGuid
this.userToken = userToken
}
}
以及其余的使用:
val payload = LoadUserDTO(userGuid = user.guid!!, userToken = user.token!!)
val jsonPayload = Gson().toJson(payload)
this.socketService.socket.emit(EndpointsEnum.AppLoadUser, jsonPayload)
jsonPayload 应该是一个 JSON 对象。相反,整个事情是一个应该是 JSON 对象的字符串:
"{"userGuid":"...","userToken":"..."}"
当服务器接收到它时,它不会像 Web UI 或 Swift App 发送的那样接收 JSON 对象,而是只是一个字符串,而不是转换为 JSON 对象。
【问题讨论】:
-
你能记录下payload包含的内容吗?
-
JSON 对象是什么意思?与当前发生的情况相比,您的预期输出是多少?你怎么知道它正在发送一个字符串?
-
@DevWithZachary 我可以在 API 端点上设置断点。数据是一个字符串,当它应该是一个对象时。当我通过 Web App 做同样的事情时,它是一个对象,当我从 iOS App 做同样的事情时,它也是一个对象。在这种情况下,它作为字符串发送。