And*_*nes 5 java serialization json jackson spring-boot
我有一个带有Optional字段的Java类.我使用Jackson 2.8.3(从Spring web 4.3.3调用)将类序列化为JSON.
如果Optional为空,我希望让序列化程序跳过该字段,并序列化包含的字符串(如果存在).我正在寻找两个对象列表的结果示例:
[
{
"id": 1,
"foo": "bar"
},
{
"id": 2,
}
]
Run Code Online (Sandbox Code Playgroud)
对于id为2的对象,foo Optional为空.
相反,我得到的是:
[
{
"id": 1,
"foo": {
"present": true
}
},
{
"id": 2,
"foo": {
"present": false
}
}
]
Run Code Online (Sandbox Code Playgroud)
即使我在类中注释"bar"字段,这也是结果
@JsonInclude(JsonInclude.Include.NON_ABSENT)
public Optional<String> getFoo() { ...
Run Code Online (Sandbox Code Playgroud)
有没有什么方法可以使用Jackson注释或自定义序列化器来获得第一个列表的结果?
Bar*_*cki 12
无需编写自定义序列化程序.用你的课程注释@JsonInclude(JsonInclude.Include.NON_ABSENT).com.fasterxml.jackson.datatype:jackson-datatype-jdk8并且objectMapper.registerModule(new Jdk8Module());也会正常工作.
您还需要包含 @JsonInclude(JsonInclude.Include.NON_ABSENT)作为您的依赖项.
| 归档时间: |
|
| 查看次数: |
2638 次 |
| 最近记录: |