【发布时间】:2016-03-24 18:37:01
【问题描述】:
所以我有一个 json 输入,像这样:
{
"a":"something",
"b":"something2"
}
此输入可以有 2 种其他形式:
{
"a":"something",
"b":""
}
和
{
"a":"something"
}
我有一个像这样的输入类,我将它存储在:
public class Foo {
private String a;
private Optional<String> b;
}
在后两种情况下,我想将 b 存储为 Optional.empty()。我已经想出了如何在第三种情况下使用这行代码来做到这一点:
Optional.ofNullable(inputNode.get("b")).map(node -> node.asText())
这适用于第三种情况。它返回 Optional.empty。但对于第二种情况而言,情况并非如此,因为b 最终只是一个空字符串。我尝试在.map 之前和之后使用.reduce,但由于某种原因,它不允许我在任何地方使用它。
你想知道如何实现我想要的吗?
【问题讨论】:
标签: java json jackson java-stream optional