【问题标题】:JSON snake case for library class库类的 JSON 蛇案例
【发布时间】:2019-08-20 13:13:35
【问题描述】:

我有一个类正在扩展一些库类。 如何将类属性扩展为驼峰式。

@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class)
class Test extends Abc {
}



// Library class which I can't modify
class Abc {
  private firstName;
 }

如何将 firstName 设为 first_name

【问题讨论】:

  • AFAIK,除了制作一个使用蛇盒的包装器功能外,您别无他法。

标签: java json snakecasing


【解决方案1】:

你可以使用 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。

【讨论】:

    猜你喜欢
    • 2017-05-08
    • 2020-02-10
    • 1970-01-01
    • 2018-02-15
    • 2019-06-28
    • 1970-01-01
    • 2020-12-08
    • 1970-01-01
    相关资源
    最近更新 更多