代码之家  ›  专栏  ›  技术社区  ›  WesternGun

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

  •  1
  • WesternGun  · 技术社区  · 6 年前

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

    0 回复  |  直到 6 年前