繁体   English   中英

如何使用Jackson将蛇案Yaml映射到camelcase Java字段

[英]How to map snake case yaml to camelcase java fields with Jackson

我有一个驼峰大小写的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和camelcase中用Java定义蛇形盒?

我找到了解决我的问题的方法,那就是删除嵌套对象。 Input类中包含所有字段并删除Product ,它会按预期工作。

我仍然对此问题保持开放,因为我仍然很感兴趣,是否可以使用嵌套对象来实现

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM