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

执行JSON.parse报错Unexpected token ' in JSON at position 0求助

问题根因

你混淆了JavaScript字符串字面量的包裹符号与JSON本身的语法规则:

  • 你参考的文档里'{ "name":"John", "age":30, "city":"New York"}'属于JS代码层面的写法:外层单引号是JS用来标记字符串边界的语法,真正传入JSON.parse的字符串内容是去掉外层单引号的{ "name":"John", "age":30, "city":"New York"}。JSON本身的规范不允许内容首尾出现多余单引号,也不支持用单引号作为键值的包裹符号。
  • 你当前的str变量实际内容首尾自带单引号,等于传入JSON.parse的内容第一个字符就是单引号,不符合JSON语法要求,因此触发位置0的语法错误。
  • 你之前尝试移除"1"前的空格没有解决问题,是因为空格并非本次报错的诱因,问题核心是首尾多余的单引号。
排查验证方法

执行以下代码即可确认问题:

// 打印字符串第一个字符,输出为单引号'即可确认问题
console.log(str.charAt(0));
修复方案

可根据实际场景二选一:

  • 方案1:从赋值源头修正,确保给str赋值时,不要把JS层面包裹JSON的单引号也存入字符串内容中。
  • 方案2:如果无法修改赋值逻辑,可先剔除首尾多余单引号再解析:
const parsedData = JSON.parse(str.replace(/^'|'$/g, ''));

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 04:36:04