【Java进阶营】Jackson自定义序列化注解(1)-Map的key驼峰蛇形的转换

本文介绍了如何使用Jackson库处理JSON响应时,实现Map的key从驼峰式到蛇形的转换。通过自定义JsonSerializer `MapNamingStrategySerialize`,解决了Guava `CaseFormat`在处理带数字的驼峰式key时的问题,确保了数字前后都有下划线。通过在Map属性上添加`@JsonSerialize(using = MapNamingStrategySerialize.class)`注解,实现了转换需求。
摘要由CSDN通过智能技术生成

需求:完成响应对象驼峰->蛇形的转换,包括响应对应中Map类型的key也需要转换。

准备工作

com.google.guava
guava
31.0.1-jre

@Data
public class User {

private String nameInfo;

private String ageInfo;

private Account account;

@JsonSerialize(using = MapNamingStrategySerialize.class)
private Map<String, Object> extraMap;

@JsonSerialize(using = MapNamingStrategySerialize.class)
private Map<String, String> cache;

@Data
public static class Account {

    private Long accountId;

    @JsonProperty("name_4_user")
    private String name4User;
}

public static User builder() {
    User user = new User();
    user.setNameInfo("coder");
    user.setAgeInfo("28");

    Account account = new Account();
    account.setAccountId(1001L);
    account.setName4User("liming");
    user.setAccount(account);

    Map<String, Object> extra = new HashMap<>();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值