java - JsonNode - 空指针异常
问题描述
我需要获取这个 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();
拜托,有人可以看看这个吗?将不胜感激。
解决方案
您正在调用,如果是数组节点objNode.get(0)
,它将检索数组的第一个值- 但它不是,它是数组中的节点。如果节点不是数组,则记录为返回 null 。objNode
JsonNode.get(int)
您只需:
serviceId = objNode.textValue();
推荐阅读
- python - 在 DateTime 上合并 Pandas 数据帧
- spss - 将值从不同形状的表附加到一个表
- java - 为什么我在 pdfXFA 示例中收到 NoClassDefFoundError?
- c# - Discord.Net C# Sharded Bot Unknown Dispatch (INVITE_CREATE)
- r - R:M3C 库 - 重复的 row.names 错误消息
- android - 任务 ':app:minifyReleaseWithR8'.java.lang.NullPointerException 执行失败(无错误消息)
- python - 有没有办法在 Python 中获取默认浏览器?
- xcode - 什么可能导致彩色 Mac 应用程序图标显示为灰度?
- flutter - 如何从 UI Flutter 中删除元素
- javascript - Express Router.Post 没有在 Postman 上发回 Json