gpt4 book ai didi

java - 如何将 'has' 方法命名约定用于 Jackson 的 boolean 值?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:35:57 25 4
gpt4 key购买 nike

Jackson 不使用 has getter 方法处理我的 boolean 字段。例如animal.hasLegs(),对于legs字段返回一个没有legs字段的JSON对象。它确实适用于 is getter 方法(person.isAwesome() 用于 boolean 字段 awesome)。

如何让 Jackson 对 boolean 字段使用 has 方法命名约定?

最佳答案

  1. @JsonGetter 注释所有需要的hasXXX() 方法。否则 Jackson 根本不使用这个属性,因为它不是以 get:

    开头的
    @JsonGetter
    public boolean hasAwesome() { ... }
  2. 设置自定义 PropertyNamingStrategy,重命名从方法名称到 JSON 字段的映射。默认情况下,它将生成名为 hasXXX 的 JSON 字段。

    ObjectMapper mapper = ...
    mapper.setPropertyNamingStrategy(new PropertyNamingStrategy() {
    @Override
    public String nameForGetterMethod(MapperConfig<?> config, AnnotatedMethod method, String defaultName) {
    String prefix = "has";
    if (defaultName.startsWith(prefix)) {
    String withoutHas = defaultName.replace(prefix, "");
    char firstLower = Character.toLowerCase(withoutHas.charAt(0));
    return firstLower + withoutHas.substring(1);
    }
    return super.nameForGetterMethod(config, method, defaultName);
    }
    });

关于java - 如何将 'has' 方法命名约定用于 Jackson 的 boolean 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42579672/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com