【发布时间】:2019-08-07 18:44:16
【问题描述】:
所以我有这个 Spring Boot 应用程序,它必须将带有参数“some_value=1500&some_other_value=50000”的 GET 请求发送到具有 someValue 和 someOtherValue 属性的对象。
我已经尝试过@JsonProperty("some_value"),但没有成功。我已将“spring.jackson.property-naming-strategy=SNAKE_CASE”添加到我的 application.properties 文件中,但它仍然无法正常工作。
重要细节:当我尝试序列化一个对象时,它确实会变成 someValue => some_value 和 someOtherValue => some_other_value。所以我知道配置“很好”,但它拒绝将蛇案例中的请求参数映射到我需要的骆驼案例。 (不......我无法控制请求格式。我在蛇案例中获取参数,我必须将它们映射到骆驼案例)
请帮忙。谢谢!
【问题讨论】:
-
我认为反序列化不适用于
GET请求。它只是映射到相应的请求参数类型或简单的请求参数映射。分享您的请求映射代码。 -
我没有...我很沮丧,以至于我将它清理为准系统只是为了测试。我得到
localhost:8080/myApp/users?user=pepe&some_value=1500&some_other_value=50000我的代码是@GetMapping("/users") public User users(User u){ return u; }并返回{"user":"pepe","some_value":null,"some_other_value":null} -
正如我所说,它不适用于 GET 请求。将其更改为在请求正文中发布和发送用户 json。
@PostMapping("/users") public User users(@RequestBody User u){ return u; }. -
FFS 就是这样......老实说,我不明白为什么它只适用于 post 而不是 get......这感觉违反直觉。但就是这样。谢谢一百万,老实说,我找不到任何指定“这仅用于帖子正文而不用于获取参数”的信息,非常感谢。
标签: java spring spring-boot jackson