无需第三方工具,本地将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实现,无需额外安装:
- 新建一个文本文件,命名为
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
- 在CMD中运行:
cscript json2csv.vbs input.json output.csv
3. Notepad++(仅适用于简单扁平JSON)
通过正则表达式替换实现,仅支持无嵌套、纯字符串值的简单JSON:
- 打开JSON文件,按
Ctrl+H打开替换窗口 - 查找模式(正则表达式):
"(\w+)":\s*"([^"]*)",? - 替换为:
$1,$2\n - 勾选「正则表达式」,点击「全部替换」
- 手动添加表头后,将文件另存为
.csv格式
注意:此方法无法处理嵌套JSON、转义引号等复杂场景,仅适合快速转换简单数据。
4. SQL Server
利用OPENJSON函数解析JSON,再导出为CSV:
- 打开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
相关产品推荐
相关产品推荐

