我看到人们使用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()
。