0

我需要获取这个 arrayNode 中的值(以防万一,我知道它只会是数组中的一个值 - 请不要问我为什么,这是我接收它的方式):

"data": {
    "services": [
        "ISP3100008972@some.com"
    ]
}

我正在运行这部分代码:

ArrayNode arrNode = (ArrayNode) new ObjectMapper().readTree(resBody).path("data").get("services");
if (arrNode.isArray()) {
    for (final JsonNode objNode : arrNode) {
        serviceId = objNode.get(0).textValue();
        log.info("serviceId: " + serviceId + " is available");
    }
}

我在这一行得到一个 java.lang.NullPointerException: null: serviceId = objNode.get(0).textValue();

拜托,有人可以看看这个吗?将不胜感激。

4

1 回答 1

0

您正在调用,如果是数组节点objNode.get(0),它将检索数组的第一个值- 但它不是,它是数组中的节点。如果节点不是数组,则记录为返回 null 。objNodeJsonNode.get(int)

您只需:

serviceId = objNode.textValue();
于 2020-03-19T05:21:09.063 回答