我想在 Ktor 和 django 中使用不同的 JSON 键命名发出 post 请求。这不是什么大问题,但我想遵循 Kotlin 和 django 中命名 val 的约定。
这是我的用户发布请求正文在 Kotlin/Ktor 中的外观:
@Serializable
data class UserPostRequest(
val username: String,
val email: String,
val password: String,
val password_check: String
)
此功能的问题是“password_check”值,它不是按惯例命名的
属性名称“password_check”不应包含下划线
当我尝试将其更改为passwordCheck,发出发布请求时,它返回一个密码不匹配的错误。
我认为这是因为 django 期望“password_check”作为 JSON 密钥。
您可以使用 SerialName 注释来覆盖密钥的名称:
@Serializable
data class UserPostRequest(
val username: String,
val email: String,
val password: String,
@SerialName("password_check")
val passwordCheck: String
)