Ric*_*ard 1 java json optional jackson java-stream
所以我有一个 json 输入,如下所示:
{
"a":"something",
"b":"something2"
}
Run Code Online (Sandbox Code Playgroud)
此输入可以有两种其他形式:
{
"a":"something",
"b":""
}
Run Code Online (Sandbox Code Playgroud)
和
{
"a":"something"
}
Run Code Online (Sandbox Code Playgroud)
我有一个这样的输入类,我将它存储在:
public class Foo {
private String a;
private Optional<String> b;
}
Run Code Online (Sandbox Code Playgroud)
在后两种情况下,我想将 b 存储为 Optional.empty()。我已经想出了如何使用这行代码在第 3 种情况下做到这一点:
Optional.ofNullable(inputNode.get("b")).map(node -> node.asText())
Run Code Online (Sandbox Code Playgroud)
这适用于第 3 种情况。它返回 Optional.empty。但对于第二种情况并没有那么多,因为b最终只是一个空字符串。我试图在.reduce之前和之后使用,.map但由于某种原因它不会让我在任何地方使用它。
以及如何实现我想要的想法?
您可以过滤 Optional 以检查该值是否为空字符串:
Optional<String> b = Optional.ofNullable(inputNode.get("b"))
.map(JsonNode::asText)
.filter(s -> !s.isEmpty());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2371 次 |
| 最近记录: |