Java Record序列化与反序列化使用不同字段名的实现方案
Java Record 序列化与反序列化配置不同字段名的解决方案
可以通过Jackson的@JsonAlias注解配合@JsonProperty实现需求,既保留原有的序列化字段名,又支持指定的反序列化别名。
修改后的Record代码
public record TestRecord(@JsonProperty("foo bar") @JsonAlias("fooBar") String fooBar) {}
注解作用说明
@JsonProperty("foo bar"):指定序列化时输出的JSON字段名为"foo bar",保持原有输出格式不变。@JsonAlias("fooBar"):为反序列化添加别名,允许Jackson在解析JSON时识别"fooBar"字段,并将其值映射到Record的fooBar组件。
效果验证
- 序列化时,仍会生成如下JSON:
{ "foo bar": "test" } - 反序列化时,以下两种格式的JSON都能被正确解析:
{ "foo bar": "test" }{ "fooBar": "test" }
内容的提问来源于stack exchange,提问作者maxintos
相关产品推荐
相关产品推荐

