正确的Jackson方法来获取JsonNode的文本值

时间:2018-09-28 11:58:14

标签: java json jackson jackson-databind

我看到人们使用toString()来获取JsonNode的文本值,当它是ObjectNode而不是ValueNode时,尤其是当某些节点的内容是JSON字符串时以及我们可以构造另一个JsonNode来更深入地遍历内部树。

JsonNode shippingInfo = null;
JsonNode brand = null;
ArrayNode included = (ArrayNode)details.get("included");
for (JsonNode node: included) {
    if ("offers".equals(node.get("type").asText()) &&
                    orderOffer.getOfferId().toString().equals(node.get("id").asText())) {  // asText() will return empty string "", because it is not ValueNode.
    shippingInfo = node.get("attributes").get("shippingSellerMethod");
    } else if ("brands".equals(node.get("type").asText())) {
        brand = node.get("attributes");
    }
}

我知道它很有用,但很难看。我想知道是否还有另一种杰克逊式的获取价值的方法,而不总是get(node_name).toString()

0 个答案:

没有答案