美文网首页
@JsonProperty 序列化失效问题记录

@JsonProperty 序列化失效问题记录

作者: DimonHo | 来源:发表于2021-10-26 17:38 被阅读0次

问题背景:

有一个保存和修改的需求
接口地址都是 /apps/info,请求方式分别为POST 和 GET
定义了一个参数类

@Data
@Accessors(chain = true)
public class AppInfoReq {

    @JsonProperty("is_disable")
    private Boolean disabled;

    @JsonProperty("app_name")
    private String name;
    
}

接口定义如下:

@PostMapping("/apps/info")
public void save(@RequestBody AppInfoReq req){}

@GetMapping("/apps/info")
public List<AppInfo> searchApps(AppInfoReq req){
}

调用http请求
POST /apps/info

{
"app_name": "aaaa",
"is_disable": false
}

保存成功,数据正常持久化到数据库。

接着调用
GET /apps/info?is_disable=false
查询disabled字段为false的数据,却无法查询到结果,debug发现请求参数AppInfoReq.disabled 字段为空。
改用 GET /apps/info?disabled=false 即可

原因分析

POST接口请求方式为application/json方式,@JsonProperty 序列化能够生效
GET请求方式,参数拼接在URL后面,此时参数对象中的 @JsonProperty 不会生效。

相关文章

网友评论

      本文标题:@JsonProperty 序列化失效问题记录

      本文链接:https://www.haomeiwen.com/subject/yilyaltx.html