gpt4 book ai didi

json - @RequestBody无法与@JsonProperty一起使用

转载 作者:行者123 更新时间:2023-12-02 13:33:49 25 4
gpt4 key购买 nike

我正在使用Spring Boot 2.2.2Kotlin 1.3.61构建API。
我以前做过,并且不记得遇到这个问题。

基本上我有以下DTO:

class RequestDTO {
@JsonProperty(value = "phone_number")
var phoneNumber: String = ""
}

我想将其用作POST Controller 的参数:
@PostMapping("/test")
fun test(@RequestBody body: RequestDTO): Object {
return service.doStuff(body)
}

我要求
{
"phone_number": "12345"
}

我的 RequestDTO没有定义 phoneNumber属性(默认为空)。如果我在请求中传递 phoneNumber,则可以反序列化。

另外一个非常奇怪的部分是以下代码可以正常工作:
val om = ObjectMapper()
val rqDto = RequestDTO()
rqDto.phoneNumber = "12345"

val rqStr = om.writeValueAsString(rqDto) // { "phone_number": "12345" }

val rqDto2 = om.readValue(rqStr, RequestDTO::class.java) // [phoneNumber = "12345"]


所以问题似乎是关于 @RequestBody@JsonProperty在一起...?我是否缺少某些配置?

我也尝试过使用 @get:JsonProperty()@set:JsonProperty()失败。

谢谢

最佳答案

好吧,事实证明这是一个简单的问题。
该项目具有一个依赖关系,该依赖关系具有org.codehaus.jackson的依赖关系,我使用的是org.codehaus.jackson.annotate.JsonProperty而不是com.fasterxml.jackson.annotation.JsonProperty。更改它的工作。 -_-

关于json - @RequestBody无法与@JsonProperty一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59903706/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com