我有问题与使用杰克逊的bean到json序列化/反序列化有关.以前我用GSON要做到这一点,但现在我面对的已经依赖于杰克逊一个项目,我宁愿不引进新的依赖,如果我可以用我已经在做手工.
所以想象我有一个像这样的豆:
class ExampleBean {
private String firstField;
private String secondField;
// respective getters and setters
}
Run Code Online (Sandbox Code Playgroud)
然后杰克逊将其序列化为:
{
"firstField": "<first_field_value>",
"secondField": "<second_field_value>"
}
Run Code Online (Sandbox Code Playgroud)
我使用以下代码生成上述结果:
ExampleBean bean;
...
ObjectMapper mapper = new ObjectMapper();
mapper.writeValue(outStream, bean);
Run Code Online (Sandbox Code Playgroud)
但是,我希望(我预期)获得以下序列化:
{
"first_field": "<first_field_value>",
"second_field": "<second_field_value>"
}
Run Code Online (Sandbox Code Playgroud)
我故意简化了我的例子,但是我想要序列化的bean有很大的层次结构,我想指定序列化的属性应该总是在snake_style中(即带有下划线),并且相应的bean字段应该始终是camelCased.有没有什么办法可以强制执行这样的字段/属性命名策略并使用它们而不为每个字段添加相应的属性?
Bor*_*jev 12
是的,我找到了它(事实证明,经过2个小时的搜索,我距离发现它只有30分钟):
ObjectMapper mapper = new ObjectMapper();
mapper.setPropertyNamingStrategy(
PropertyNamingStrategy.CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES);
mapper.writeValue(outStream, bean);
Run Code Online (Sandbox Code Playgroud)
希望这对其他人也有帮助.
| 归档时间: |
|
| 查看次数: |
4991 次 |
| 最近记录: |