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

如何用PowerShell修复含尾逗号的JSON格式文件

PowerShell处理带尾逗号的JSON格式化问题

PowerShell完全可以实现类似Notepad++的效果,自动移除JSON中的多余尾逗号并输出标准格式化的JSON,具体操作如下:

核心解决方案(PowerShell 7+推荐)

PowerShell 7及以上版本的ConvertFrom-Json原生支持解析带有尾逗号的非标准JSON,只需将JSON解析为对象后再重新序列化,就能自动生成符合规范的JSON:

# 读取目标JSON文件
$rawJson = Get-Content -Path "你的JSON文件路径.json" -Raw
# 解析为PowerShell对象
$jsonObj = $rawJson | ConvertFrom-Json
# 重新序列化为标准格式化JSON并保存
$jsonObj | ConvertTo-Json -Depth 10 | Set-Content -Path "格式化后的文件路径.json"
  • -Raw参数确保文件内容被作为完整字符串读取,避免换行导致的解析问题
  • -Depth参数用于指定JSON的最大嵌套深度,默认值为2,设置更大的值(比如10)可以避免嵌套结构被截断
  • 重新序列化时,ConvertTo-Json会自动移除所有多余的尾逗号,生成标准格式的JSON

兼容PowerShell 5.1的方案

如果使用PowerShell 5.1,原生ConvertFrom-Json无法解析带尾逗号的JSON,可以先用正则表达式预处理移除多余逗号,再进行解析:

$rawJson = Get-Content -Path "你的JSON文件路径.json" -Raw
# 正则移除对象/数组末尾的逗号,以及键值对后的空逗号
$cleanedJson = $rawJson -replace '(?<=[\}\]])\s*,', '' -replace ':\s*,', ':'
$jsonObj = $cleanedJson | ConvertFrom-Json
$jsonObj | ConvertTo-Json -Depth 10 | Set-Content -Path "格式化后的文件路径.json"

效果验证

针对你提供的问题JSON:

{
    "Name": "SampleName",
    "Cart": [
        {
            "Item1": "ItemOne",
            
        },
        {
            "Item2": "ItemTwo",
            
        },
    ]
}

经过上述处理后,会生成你期望的标准JSON:

{
    "Name": "SampleName",
    "Cart": [
        {
            "Item1": "ItemOne"
        },
        {
            "Item2": "ItemTwo"
        }
    ]
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 01:30:55