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

PowerShell解析JSON文件触发ArgumentException错误求助

解决JSON解析失败(Invalid object passed in, ':' or '}' expected)的问题

以下是针对这个错误的具体排查和修复步骤:

  • 检查隐藏字符与编码问题
    这类错误常源于文件里的不可见控制字符或编码异常:

    • 用PowerShell查看文件十六进制内容,排查异常字符:
      Get-Content cleantest2.json -Raw | Format-Hex
      
    • 如果发现UTF-8 BOM(开头的EF BB BF),重新保存为无BOM的UTF-8文件:
      Get-Content cleantest2.json -Raw | Out-File -FilePath cleantest2-fixed.json -Encoding utf8NoBOM
      

    再用新文件执行解析命令。

  • 排查JSON语法隐性错误
    在线格式化工具会自动修复小问题,但本地解析器更严格,重点检查:

    • 字符串中的未转义双引号:比如"content: "test""要改成"content: \"test\""
    • 数组/对象末尾的尾随逗号:比如["a", "b",]或{"key": "val",}都是无效语法
    • 键名是否用双引号包裹:JSON要求所有键必须是双引号字符串,{name: "foo"}是错误的,必须写成{"name": "foo"}
  • 用Test-Json定位错误位置
    PowerShell的Test-Json命令能精准指出语法错误的位置:

    Get-Content cleantest2.json -Raw | Test-Json -ErrorAction Stop
    

    执行后会返回错误行号和具体位置,方便快速修复。

  • 修复ConvertTo-Json的生成问题
    如果这个JSON是用PowerShell的ConvertTo-Json生成的,注意默认深度限制(仅2层),嵌套层级过深会导致内容被截断,生成无效JSON。解决方法是指定足够的深度:

    $yourObject | ConvertTo-Json -Depth 10 | Out-File cleantest2-fixed.json -Encoding utf8NoBOM
    
  • Python解析的错误定位
    用Python代码捕获解析异常,获取详细错误信息:

    import json
    with open('cleantest2.json', 'r', encoding='utf-8') as f:
        try:
            data = json.load(f)
        except json.JSONDecodeError as e:
            print(f"错误行号:{e.lineno},位置:{e.pos},原因:{e.msg}")
    

    根据输出定位并修复语法问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 02:31:01