Правильный способ Джексона, чтобы получить текстовое значение JsonNode - PullRequest
0 голосов
/ 28 сентября 2018

Я вижу людей, использующих 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().

...