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

C#如何从JSON文件中获取含指定键值对的节点列表

提取嵌套JSON中符合条件的节点

因为JSON结构可能存在任意层级的嵌套,不管是对象套数组还是数组套对象,用递归遍历是最直接的解决方式——遍历每一个元素,检查是否是包含"find":5的对象,符合条件就收集;如果是对象或数组,就继续深入内部遍历。

用Python实现的话,代码如下:

import json

def find_target_nodes(data, target_key="find", target_value=5):
    result = []
    # 处理数组(列表)类型
    if isinstance(data, list):
        for item in data:
            result.extend(find_target_nodes(item, target_key, target_value))
    # 处理对象(字典)类型
    elif isinstance(data, dict):
        # 先检查当前对象是否符合条件
        if data.get(target_key) == target_value:
            result.append(data)
        # 遍历对象的所有值,继续递归查找
        for value in data.values():
            result.extend(find_target_nodes(value, target_key, target_value))
    # 其他基础类型(数字、字符串、null等)直接跳过
    return result

# 读取你的JSON文件
with open("your_json_file.json", "r", encoding="utf-8") as f:
    json_content = json.load(f)

# 获取所有符合条件的节点
matched_nodes = find_target_nodes(json_content)

# 格式化输出结果
print(json.dumps(matched_nodes, indent=2))

代码说明:

  • 递归函数find_target_nodes会自动适配数组和对象的嵌套结构:遇到数组就逐个遍历元素,遇到对象先检查是否满足"find":5的条件,再遍历对象内部的所有值继续深入查找。
  • 针对你给出的示例JSON,运行后会输出你预期的三个节点。
  • 这个方法不受嵌套层级限制,不管JSON结构多复杂,都能遍历到所有符合条件的节点。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 11:55:24