gpt4 book ai didi

java - 指定 Jackson 的字段命名策略

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:40:39 26 4
gpt4 key购买 nike

我有关于使用 Jackson 将 bean 序列化/反序列化为 json 的问题。以前我使用 GSON 来做到这一点,但现在我面临一个已经依赖于 Jackson 的项目,如果我可以用手头已有的东西做的话,我宁愿不引入新的依赖项。

想象一下我有一个这样的 bean :

class ExampleBean {
private String firstField;
private String secondField;
// respective getters and setters
}

然后 Jackson 将其序列化为:

{
"firstField": "<first_field_value>",
"secondField": "<second_field_value>"
}

我正在使用以下代码生成上述结果:

ExampleBean bean;
...
ObjectMapper mapper = new ObjectMapper();
mapper.writeValue(outStream, bean);

但是我希望(期望)获得以下序列化:

{
"first_field": "<first_field_value>",
"second_field": "<second_field_value>"
}

我特意简化了我的示例,但是我有很多要序列化的 bean 层次结构,我想指定序列化的属性应始终采用 snake_style(即带有下划线)并且相应的 bean 字段应始终是驼峰。有什么方法可以强制执行此类字段/属性命名策略并使用它们而无需为每个字段注释相应的属性?

最佳答案

是的,我找到了(事实证明,经过 2 小时的搜索,我距离找到它只有 30 分钟的路程):

ObjectMapper mapper = new ObjectMapper();
mapper.setPropertyNamingStrategy(
PropertyNamingStrategy.CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES);
mapper.writeValue(outStream, bean);

希望这对其他人也有帮助。

关于java - 指定 Jackson 的字段命名策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9533227/

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