记录开发过程中遇到的JSON.parse方法解析失败问题

219 阅读1分钟

问题现象描述

json字符串头部出现非法字符“\ufeff”的问题导致JSON.parse解析失败处理,报错信息如下

SyntaxError: Unexpected token  in JSON at position 0

问题原因

服务端某个配置文件编码是 UTF-8 + BOM,输出的字符串最开始包含了 BOM 字符,不是合法的 JSON

解决方案

方案一

先 trim 字符串,再JSON.parse。

JSON.parse(res.data.replace(/^[\s\uFEFF\xa0\u3000]+|[\uFEFF\xa0\u3000\s]+$/g, ''))

方案二

和后端协商更改文件编码格式