我看到人们在使用
toString()
要获取JsonNode的文本值,当它是
ObjectNode
而不是
ValueNode
,特别是当某个节点的内容也是JSON字符串时;我们可以构造另一个JSON node以深入到内部树中。
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()
.