【问题标题】:How to map snake case yaml to camelcase java fields with Jackson如何使用 Jackson 将蛇案例 yaml 映射到驼峰 Java 字段
【发布时间】:2019-04-03 08:53:53
【问题描述】:

我有一个 yaml 文件,其中的键是驼峰式的,比如

---
start_date: "2018-09-01"
day_date: "2018-09-01"

userProduct:
    sales_channel: "1"
    user_group: "1" 

我有以下 Java PoJos

public class Input{
    private String startDate = "";
    private String dayDate = "";

    @JsonUnwrapped
    private Product userProduct;

   // getters/setters
}

public class Product {
   private salesChannel = "";
   private userGroup = "";

   // getters/setters
}

现在我想和杰克逊一起阅读这篇文章,我认为使用它就足够了

ObjectMapper objectMapper = new ObjectMapper(new YAMLFactory());
objectMapper.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE);
return objectMapper.readValue(inputData, Input.class); // inputData is the yaml as string

但这不会填充嵌套对象。来自Input 对象的startDatedayDate 是正确的,但例如input.getUserProduct().getSalesChannel() 返回一个空字符串。

我还尝试在 yaml 文件中使用 user_product 而不是 userProduct,但这并没有改变任何内容。

这里有什么问题?如何在 yaml 和 java 中定义蛇形大小写?

【问题讨论】:

    标签: java jackson yaml


    【解决方案1】:

    我找到了解决问题的方法,即删除嵌套对象。当在Input 类中包含所有字段并删除Product 时,它可以按预期工作。

    尽管如此,我仍然保持这个问题的开放性,因为我仍然对嵌套对象是否可以实现这一点感兴趣

    【讨论】:

      猜你喜欢
      • 2022-06-21
      • 1970-01-01
      • 2019-10-30
      • 2017-05-08
      • 2015-07-12
      • 2020-05-03
      • 1970-01-01
      • 2020-02-10
      • 1970-01-01
      相关资源
      最近更新 更多