我有一个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
,但这不会填充嵌套对象。来自startDate
对象的dayDate
和Input
是正确的,但是例如input.getUserProduct().getSalesChannel()
返回一个空字符串。
我还尝试在yaml文件中使用user_product
代替userProduct
,但这并没有改变。
这是怎么了?如何在yaml和camelcase中用Java定义蛇格?
答案 0 :(得分:0)
我找到了解决我的问题的方法,那就是删除嵌套对象。在Input
类中包含所有字段并删除Product
时,它会按预期工作。
尽管如此,我仍然对这个问题持开放态度,因为我仍然对此感兴趣,是否可以使用嵌套对象来实现