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

如何修复JSON解析Unexpected token / in JSON at position 233报错?

问题根因

你这段代码有3个明显的逻辑错误,直接触发报错:

  • 执行顺序颠倒:如果要解析JSON字符串,必须先对字符串做trim()等清理操作,再调用JSON.parse(),你先执行解析再调用字符串方法,逻辑完全错误
  • 常量非法赋值:用const声明的变量不允许重新赋值,你在const v2abi = JSON.parse(v2_ABIs)之后再写v2abi = v2abi.trim(),本身就会触发类型错误
  • API误用:Node.js环境中用require()引入.json后缀文件时,会自动完成JSON解析,直接返回对应的JS对象/数组,不需要再手动调用JSON.parse()

你遇到的Unexpected token / in JSON at position 233报错,本质是传入JSON.parse的内容不符合标准JSON语法:位置233处出现了JSON不支持的/字符,大概率是你的Uniswap_V2_ABIs.json文件里写了//形式的单行注释,或者存在未转义的斜杠——标准JSON规范不支持任何注释格式。

修复方案

根据你的文件情况二选一即可:

方案1:JSON文件为标准无注释格式(推荐)

直接用require引入即可,不需要额外的解析、清理操作,代码简化为:

const v2abi = require("./Uniswap_V2_ABIs.json");
console.log(v2abi);

方案2:JSON文件带//注释的情况

不要用require直接引入,先通过文件读取API拿到字符串,清理掉非法内容后再解析:

const fs = require('fs');
// 同步读取文件为字符串
const abiRawStr = fs.readFileSync("./Uniswap_V2_ABIs.json", 'utf-8');
// 先清理:去除首尾空白 + 移除所有//单行注释
const abiCleanStr = abiRawStr.trim().replace(/\/\/.*$/gm, '');
// 清理完成后再做JSON解析
const v2abi = JSON.parse(abiCleanStr);
console.log(v2abi);
排查技巧

如果修复后仍报同类语法错误,可以在JSON.parse调用前打印待解析的完整字符串,直接定位到报错位置的非法字符,删除或转义后即可解决。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 15:45:42