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

无需第三方工具,本地将JSON转换为CSV的可行方法

无需第三方工具将JSON转换为CSV的本地方法

1. PowerShell(原生支持,推荐处理特殊字符)

PowerShell自带JSON解析和CSV导出功能,能完美处理含特殊字符的JSON,命令示例:

# 基础转换:扁平JSON转CSV,UTF-8编码避免特殊字符报错
Get-Content -Path "input.json" -Raw | ConvertFrom-Json | Export-Csv -Path "output.csv" -Encoding UTF8 -NoTypeInformation
  • -Raw:将整个JSON文件读取为单个字符串,避免换行导致的解析错误
  • -Encoding UTF8:确保特殊字符(如中文、符号)被正确编码,解决Excel打开乱码/报错问题
  • -NoTypeInformation:移除CSV开头的PowerShell类型标识,让Excel直接识别

如果是嵌套结构的JSON,可通过自定义字段展开:

# 处理嵌套JSON,提取嵌套字段
Get-Content "input.json" -Raw | ConvertFrom-Json | Select-Object Name, Age, @{Name="City"; Expression={$_.Address.City}} | Export-Csv "output.csv" -Encoding UTF8 -NoTypeInformation

2. Command Prompt(CMD)

CMD本身无原生JSON解析,但可通过Windows内置的VBScript实现,无需额外安装:

  1. 新建一个文本文件,命名为json2csv.vbs,粘贴以下代码(仅用于信任的JSON文件,避免安全风险):
Set fso = CreateObject("Scripting.FileSystemObject")
' 读取输入JSON文件
Set jsonFile = fso.OpenTextFile(WScript.Arguments(0), 1)
jsonStr = jsonFile.ReadAll()
jsonFile.Close()

' 处理数组型JSON(若为单个对象可去掉数组遍历逻辑)
Set jsonArr = Eval(Replace(Replace(jsonStr, "[", "Array("), "]", ")"))
If IsArray(jsonArr) Then
    ' 获取表头
    headers = jsonArr(0).Keys()
    ' 创建CSV文件,UTF-8编码
    Set csvFile = fso.OpenTextFile(WScript.Arguments(1), 2, True, -1)
    csvFile.WriteLine Join(headers, ",")
    ' 写入每行数据
    For Each item In jsonArr
        values = item.Items()
        csvFile.WriteLine Join(values, ",")
    Next
    csvFile.Close()
End If
  1. 在CMD中运行:
cscript json2csv.vbs input.json output.csv

3. Notepad++(仅适用于简单扁平JSON)

通过正则表达式替换实现,仅支持无嵌套、纯字符串值的简单JSON:

  1. 打开JSON文件,按Ctrl+H打开替换窗口
  2. 查找模式(正则表达式):"(\w+)":\s*"([^"]*)",?
  3. 替换为:$1,$2\n
  4. 勾选「正则表达式」,点击「全部替换」
  5. 手动添加表头后,将文件另存为.csv格式

注意:此方法无法处理嵌套JSON、转义引号等复杂场景,仅适合快速转换简单数据。

4. SQL Server

利用OPENJSON函数解析JSON,再导出为CSV:

  1. 打开SQL Server Management Studio(SSMS),运行以下脚本(需调整字段和文件路径):
-- 创建临时表存储解析后的JSON数据
CREATE TABLE #TempJsonData (
    Id INT,
    UserName NVARCHAR(100),
    Phone NVARCHAR(20)
    -- 根据你的JSON字段定义对应列
)

-- 从本地JSON文件导入数据(确保SQL Server服务账号有权限读取该文件)
INSERT INTO #TempJsonData
SELECT *
FROM OPENJSON(BULK 'C:\data\input.json', WITH (
    Id INT '$.user_id',
    UserName NVARCHAR(100) '$.name',
    Phone NVARCHAR(20) '$.contact.phone'
))

-- 导出CSV:右键临时表 → 任务 → 导出数据 → 选择「平面文件目标」,编码设为UTF-8,完成导出

OPENJSON支持嵌套JSON路径解析,能处理复杂结构的JSON数据。

关于Excel报错的补充

你遇到的Excel「从JSON获取数据」报错,大概率是JSON编码问题。可以先用PowerShell将JSON转成UTF-8编码的CSV,再用Excel打开,能避免特殊字符导致的解析错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 23:20:36