Micronaut 4.1.6中@Serdeable注解的JSON命名策略配置问题
Micronaut 4.1.6 序列化/反序列化蛇形命名配置问题解决
问题根源
Micronaut 4.x 版本默认采用 Micronaut Serde 替代了旧版本的Jackson作为序列化/反序列化框架,因此原Jackson的jackson: property-naming-strategy: SNAKE_CASE配置不再生效。
解决方案一:全局配置蛇形命名(推荐)
直接在application.yml中配置Serde的全局命名策略,所有被@Serdeable标记的类都会自动应用蛇形命名:
micronaut: serde: naming-strategy: snake-case
解决方案二:局部类单独指定命名策略
如果只需要给特定类配置蛇形命名,修正@Serdeable的参数写法即可——注解参数要求传入类字面量(T::class),正确写法如下:
import io.micronaut.serde.annotation.Serdeable import io.micronaut.serde.config.naming.PropertyNamingStrategies @Serdeable(naming = PropertyNamingStrategies.SnakeCase::class) data class User( val userId: Long, val userName: String )
该配置仅对当前标注的类生效。
内容的提问来源于stack exchange,提问作者Ryuzaki L
相关产品推荐
相关产品推荐

