为了账号安全,请及时绑定邮箱和手机立即绑定

库类的 JSON snake case

库类的 JSON snake case

郎朗坤 2023-06-14 13:55:06
我有一个类正在扩展一些库类。如何将类属性扩展为驼峰式大小写。@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class)class Test extends Abc {}// Library class which I can't modifyclass Abc {  private firstName; }如何将firstName设为first_name
查看完整描述

1 回答

?
海绵宝宝撒

TA贡献1809条经验 获得超8个赞

你可以使用 mixin 。基本上,您在另一个类上定义注释,然后将真实类与 objectMapper 中的 mixin 相关联


public class JacksonMixin {

    @JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY)

    @JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class)

    abstract class MixinAbc{}


    // Library class which I can't modify

    class Abc {

      private String firstName;


     }


    @Test

    public void testMixin() throws JsonProcessingException {

        ObjectMapper objectMapper = new ObjectMapper();

        objectMapper.addMixIn(Abc.class, MixinAbc.class);

        Abc value = new Abc();

        value.firstName="bill";

        String writeValueAsString = objectMapper.writeValueAsString(value);

        Assert.assertEquals("{\"first_name\":\"bill\"}", writeValueAsString);


    }


}

编辑:addMixInAnnotation 已弃用,现在只是 addMixIn。


查看完整回答
反对 回复 2023-06-14
  • 1 回答
  • 0 关注
  • 150 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信