首页 > 解决方案 > 如何用键的虚线名称形成json主体

问题描述

需要在 Kotlin 中为带有虚线名称的 JSON 正文请求形成对象。

还没有。

它在 Kotling 中使用以下对象模型来形成 json 正文请求:

val requestBody: Any = object : Any() {
        val user = user
        val paremeters: Any = object : Any() {
            val parameter1 = parameter1
        }
    }

发送以下 json 正文请求:{ user: user, parameters: { parameter1: parameter1 } }

现在需要发送以下 json body 请求:

{ user: user,
  parameters: {
      user.parameter1: parameter1
  }
}

所以在 Kitlin 中,它的名称不正确:

val requestBody: Any = object : Any() {
            val user = user
            val paremeters: Any = object : Any() {
                val user.parameter1 = parameter1
            }
        }

你能提出一些解决方案吗?

需要用带点的键名形成请求的 json 正文。

标签: jsonrestkotlinrequest

解决方案


我认为在这里你不应该使用 a objectfor youparameters属性,而是 a Map<String, String>,它允许带有任何字符的键:

val requestBody: Any = object : Any() {
   val user = user
   val parameters = mapOf("user.parameter1" to parameter1)
}

object我相信为你正在做的事情创建一个命名类而不是实例化动态s会更好:

data class RequestBody(val user: String, val parameters: Map<String, String>)

val requestBody = RequestBody(user, mapOf("user.parameter1" to parameter1))

推荐阅读