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

如何将nuget-tree输出的树形格式转换为JSON格式?

如何将nuget-tree的树形输出转为JSON格式?

方法1:使用工具内置的JSON输出参数

先确认nuget-tree是否支持直接输出JSON格式。如果工具版本支持,直接添加--json参数执行即可:

nuget-tree --json

执行后就能直接得到符合需求的JSON格式包依赖列表。

方法2:编写脚本解析树形输出

如果工具本身不支持JSON输出,可以用脚本解析树形文本。以下是Python脚本示例,可将你提供的树形输出转换为目标JSON:

脚本代码

import json

def parse_nuget_tree(tree_text):
    result = {}
    indent_level_map = {}
    
    lines = [line.strip() for line in tree_text.split('\n') if line.strip()]
    
    for line in lines:
        # 计算当前行的缩进级别
        indent = 0
        while line.startswith(('│ ', '├─', '└─')):
            indent += 1
            line = line[2:]
        
        # 提取完整包名(处理带┬的父节点行)
        package_full = line.split('┬')[-1].strip() if '┬' in line else line.strip()
        
        # 记录不同缩进级别对应的节点
        indent_level_map[indent] = package_full
        
        if indent > 0:
            # 找到父节点,移除父节点的版本号以匹配示例格式
            parent_full = indent_level_map[indent - 1]
            parent_name = ' '.join(parent_full.split(' ')[:-1]) if ' ' in parent_full else parent_full
            
            if parent_name not in result:
                result[parent_name] = []
            result[parent_name].append(package_full)
        else:
            # 根节点直接加入结果,依赖列表为空
            result[package_full] = []
    
    return json.dumps(result, indent=4)

# 传入你的树形输入文本
tree_input = """├── Antlr 3.5.0.2
├── Castle.Core 4.4.0
├── Microsoft.AspNet.Mvc 5.2.7
├─┬ Microsoft.AspNet.Providers.LocalDB 2.0.1
│ └── Microsoft.AspNet.Providers.Core 2.0.0
├── Microsoft.AspNet.Razor 3.2.7
├── Microsoft.AspNet.Web.Optimization 1.1.3
├─┬ Microsoft.AspNet.WebApi.Core 5.2.7
│ └── Microsoft.AspNet.WebApi.Client 5.2.7"""

# 输出转换后的JSON
print(parse_nuget_tree(tree_input))

脚本运行输出

{
    "Antlr 3.5.0.2": [],
    "Castle.Core 4.4.0": [],
    "Microsoft.AspNet.Mvc 5.2.7": [],
    "Microsoft.AspNet.Providers.LocalDB": [
        "Microsoft.AspNet.Providers.Core 2.0.0"
    ],
    "Microsoft.AspNet.Razor 3.2.7": [],
    "Microsoft.AspNet.Web.Optimization 1.1.3": [],
    "Microsoft.AspNet.WebApi.Core 5.2.7": [
        "Microsoft.AspNet.WebApi.Client 5.2.7"
    ]
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 22:48:43