You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何遍历JsonNode以获取键值对?附示例JSON结构

遍历JsonNode获取键值对的方法

以Jackson库的JsonNode为例,你可以按以下步骤遍历results节点下的所有键值对:

1. 获取目标子节点

先从根JsonNode中取出results对应的子节点,同时做好非空和类型校验:

JsonNode rootNode = ...; // 已解析得到的根节点
JsonNode resultsNode = rootNode.get("results");

// 确保results节点存在且是对象类型
if (resultsNode != null && resultsNode.isObject()) {
    // 遍历逻辑写在这里
}

2. 遍历键值对

方式一:迭代器循环

通过fields()方法获取键值对迭代器,逐个处理:

Iterator<Map.Entry<String, JsonNode>> fieldIterator = resultsNode.fields();
while (fieldIterator.hasNext()) {
    Map.Entry<String, JsonNode> entry = fieldIterator.next();
    String key = entry.getKey();
    // 根据值的实际类型选择转换方法,这里示例是字符串类型
    String value = entry.getValue().asText();
    // 替换为你的业务逻辑
    System.out.printf("键:%s,值:%s%n", key, value);
}

方式二:Lambda表达式简化

用forEachRemaining配合Lambda表达式,代码更简洁:

resultsNode.fields().forEachRemaining(entry -> {
    String key = entry.getKey();
    String value = entry.getValue().asText();
    System.out.printf("键:%s,值:%s%n", key, value);
});

注意事项

  • 如果值的类型不确定(比如可能是数字、布尔值或嵌套对象),可以先通过entry.getValue().isString()、entry.getValue().isNumber()等方法判断类型,再调用对应的asXxx()方法转换。
  • 如果results节点可能是数组类型,需要改用elements()方法遍历数组元素。

内容的提问来源于stack exchange,提问作者Tanu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 11:15:27