首页 > 编程语言 > 详细

spring boot 中接口参数为枚举时的反序列化配置(总结)

时间:2021-07-12 23:32:21      阅读:38      评论:0      收藏:0      [点我收藏+]

步骤

  1. 如果是 GET 请求中需要反序列化枚举值(即 url 中的参数[querystring]),确保以下两点

    1.1. 重写 StringToEnumConverterFactory

    1.2. 配置 registry.addConverterFactory(new StringToEnumConverterFactory());

  2. 如果是 POST 请求,确保以下两点

    2.1. 在目标字段或 getXXX() 上写 @JsonValue 注解,这个注解会在序列化以及反序列化时使用,但仅限于 json 格式的数据,如果是 GET 请求中 url 上的参数,这个就没用,因为只有 json 的序列化和反序列化才会走 jackson 的代码啊

    2.2. 如果字段或 getXXX() 返回的是 Integer 类型的数据,那么客户端在传值时需要 toString() 一下,即确保传递过来的值是字符串类型,而不是整型,否则无法解析参数(如果有时间再深究)。

    2.3. 0"0" 也可以传,这个会被反序列化成枚举类型中的第一项

备注

关于第一点和第二点中具体代码的配置,可以参考之前写的spring-boot rest controller 使用枚举作为参数,重写反序列化实现任意值转枚举类型

spring boot 中接口参数为枚举时的反序列化配置(总结)

原文:https://www.cnblogs.com/myesn/p/15004402.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!