如何删除 JsonObject 的主(根节点)名称

How can I delete JsonObject's main(root node's) name

不知道我该如何解释我搜索了 9 小时,终于需要帮助。

{"session_permit":{ "sessionID":"sessionID", "participantID":0, "timestamp":0, "signature":"somethinglongstring" }}

这是我做的,我不需要“session_permit”。

我需要的是:

{ "sessionID":"sessionID", "participantID":0, "timestamp":0, "signature":"somethinglongstring" }

我已完成删除 JsonObject 上的“namevaluepairs”数据,但无法删除其中的主要名称。我必须发送数据类型:JsonObject 到服务器,当我通过 JsonObject 发送时,总是添加“sessionID”。

我把这个放在服务器上发送请求。

interface TalkJoinCredentialsApiInterface
{
    @POST("Prod/channel/join/Test")
    @Headers("Content-type: application/json",
        "Accept: */*")
    fun joinCredentialData(
        @Body requestData : TalkJoinCredentialsRequestData
    ) : Call<TalkJoinCredentialsResponseData>
}
class TalkJoinCredentialsRequestData(
   var session_permit : JsonObject
)
var jsonObject = JsonObject()
jsonObject.addProperty("sessionID", session_permit.sessionID)
jsonObject.addProperty("participantID", session_permit.participantID)
jsonObject.addProperty("timestamp", session_permit.timestamp)
jsonObject.addProperty("signature", session_permit.signature)

var requestData = TalkJoinCredentialsRequestData(jsonObject)

你可以这样做:

var newJson = json.session_permit

您可能应该将 TalkJoinCredentialsRequestData 定义为

class TalkJoinCredentialsRequestData(val sessionID: String, val participantID: Int, val timestamp: Int, val signature: String)

所以它按照您期望的方式序列化。