【发布时间】:2016-03-14 20:24:04
【问题描述】:
我正在使用 Jackson 库中的 JsonNode 对象来保存 json 响应。我可能有一个像这样的 json:
{
"a": "test",
"b": true
}
但是,有时b 字段可能会丢失。所以它可以像这样回来:
{
"a": "test"
}
在这种情况下,我想在尝试检索其值时返回 Optional.isEmpty()。本质上,这是它的 java 代码:
if(json.path("b").isMissingNode()) {
return Optional.empty();
} else {
return Optional.of(json.get("b").asBoolean());
}
但是,我想使用 .filter 和 .ofNullable 将其压缩为 1 行,但我不确定如何执行此操作。我发现this post 显示了如何使用过滤器的示例,但我了解s 是什么......
基本上我想找到标记为b 的字段,如果不存在则返回空。如果存在则返回其字段的布尔值。
编辑:这不是重复的,因为我没有将整个 json 序列化为一个对象。我不需要 JsonIgnore 注释。我只想提取 1 个值。就像上面一样。
【问题讨论】:
-
这不是重复的,因为我没有序列化为对象。我只是提取 1 个值
标签: java json jackson optional predicate