jackson:无法从jsonnode获取字符串值

ep6jt1vc  于 2021-08-25  发布在  Java
关注(0)|答案(1)|浏览(434)

我有一个根jsonnode

JsonNode payloadNode;

使用以下文本值(log.warn(“有效负载节点”+payloadnode.textvalue());):

{"id":0,"uid":""}

但当我试图从该节点获取字符串值时:

JsonNode idNode = payloadNode.get("id");

我收到空的

pgky5nke

pgky5nke1#

看看这个。
用于访问字符串值的方法。不为非字符串值节点进行任何转换;对于非字符串值(ISTEXTAL()返回false的值),将返回null。对于字符串值,永远不会返回null(但可能会返回空字符串)
因为它是一个文本值,所以它只是一个没有字段“id”的字符串。
所以如果你有这样的东西:

String s = "{\"id\":0,\"uid\":\"\"}";
payloadNode = om.valueToTree(s);

如果您的jsonnode像我的示例中那样只是一个字符串,那么您将获得这样的日志输出。您需要以json树的形式读取可能的字符串,如下所示:

payloadNode = om.readTree(s);

执行此操作将为id和id提供“0” null 对于 textValue() .

相关问题