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

JSON报“JSON Data is Not Valid”解析错误排查

JSON 语法报错定位:第66行解析失败 "JSON Data is Not Valid"

错误原因

报错直接触发点是InfoStr字段的写法不符合JSON语法规范:该字段值是被双引号包裹的字符串,但字符串内部的双引号没有做转义处理,JSON解析器读取到字符串内部第一个双引号时,会直接判定InfoStr的字符串值已经结束,后续的BankEftCode等内容成为游离的无效token,最终触发解析错误。

你当前错误写法的关键片段:

"InfoStr":"[{"BankEftCode":"1234567890",......}]"

解析器读取逻辑:

  1. 读到"InfoStr":" 确认开始解析字符串值
  2. 读到[{ 属于字符串内正常字符,继续解析
  3. 读到BankEftCode前面的" 判定字符串结束
  4. 后续的BankEftCode没有匹配的语法规则,直接抛出你看到的解析错误

修复方法

根据业务需求二选一即可:

  • 方案1:如果InfoStr字段业务定义为字符串类型(存储序列化后的JSON文本),将字符串内部所有双引号前加反斜杠\转义
    修复后字段示例:
    "InfoStr":"[{\"BankEftCode\":\"1234567890\",\"TaskId\":\"12345\",\"RequestUser\":\"aaa aaa\",\"ResponseUser\":\"aaa01\",\"RequestTimestamp\":\"1234567890\",\"ResponseTimestamp\":\"134567\",\"RequestComment\":\"aaaa\",\"ResponseComment\":\"aaa\",
    \"InfoElements\":[{\"Key\":\"AtmCashDifferenceCurrency\",\"Value\":null,\"Type\":null},
                    {\"Key\":\"AtmCashSurplus\",\"Value\":\"0\",\"Type\":null}
                  ]
                  }]"
    
  • 方案2:如果InfoStr不需要存储纯文本,直接存储结构化数组即可,去掉包裹数组内容的外层双引号,无需转义内部双引号
    修复后字段示例:
    "InfoStr":[{"BankEftCode":"1234567890","TaskId":"12345","RequestUser":"aaa aaa","ResponseUser":"aaa01","RequestTimestamp\":\"1234567890","ResponseTimestamp":"134567","RequestComment\":\"aaaa","ResponseComment":"aaa",
    "InfoElements":[{"Key":"AtmCashDifferenceCurrency","Value":null,"Type":null},
                    {"Key":"AtmCashSurplus","Value":"0","Type":null}
                  ]
                  }]
    

排查提示

JSON语法中,被双引号包裹的字符串值内部如果要出现双引号,必须加\转义,否则解析器会将其识别为字符串结束边界,直接触发解析错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 00:06:36