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

如何避免ConvertFrom-Csv|ConvertTo-Json转换时生成带方括号的数组

解决方案

外层方括号产生的原因是ConvertFrom-Csv返回结果为对象数组,ConvertTo-Json会自动将数组序列化为带外层方括号的标准JSON数组格式。

方案1:转换阶段直接处理(CSV仅含1行数据时适用)

如果你的CSV文件只有一行待转换数据,直接取转换后的第一个对象序列化即可,不会生成外层数组括号:

$TestFile = 'E:\TestFile.prn'

if(Test-Path $TestFile) {
    (Get-Content $TestFile | ConvertFrom-Csv)[0] | ConvertTo-Json -Compress | Out-File "E:\TestFile.json"
}

方案2:通用字符串裁剪方案(任意行数均适用)

如果你的CSV有多行数据,或者需要保留所有原有内容仅删除最外层方括号,可通过字符串处理直接裁剪首尾括号:

$TestFile = 'E:\TestFile.prn'

if(Test-Path $TestFile) {
    $jsonContent = (Get-Content $TestFile | ConvertFrom-Csv) | ConvertTo-Json -Compress
    # Trim方法仅删除字符串首尾匹配的方括号,不会影响内容内部的方括号
    $jsonContent.Trim('[]') | Out-File "E:\TestFile.json"
}

注意事项

  • 若CSV包含多行数据,删除外层方括号后的内容不属于标准JSON格式,请提前确认你的中间件支持该类格式的传输。
  • 如果你没有使用-Compress参数,生成的JSON首尾会包含换行、空格等空白字符,可将裁剪逻辑修改为$jsonContent.Trim().Trim('[]')先清除首尾空白再裁剪括号。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 02:15:03