首页 > 解决方案 > 带有双引号的 JSON 解析错误作为无法识别的标记

问题描述

我在这个所谓的虚拟问题上被困了几个小时。我通过蓝牙从硬件设备获取数据,并在解码后:

const int8View = new Uint8Array(data)
const decoder = new TextDecoder('utf-8')
const toParse = decoder.decode(int8View)

我可以得到一个可以打印的 json 字符串:

console.log("should be parsed ", toParse)
-> should be parsed  – "{\"timeStamp\":1580011546,\"startState\":2,\"endState\":3}"

但是当我JSON.parse在这个对象上使用时,我得到:

SyntaxError: JSON Parse error: Unrecognized token ''

标签: javascriptjson

解决方案


通常,当您花时间清楚地解释您的问题时,您就会找到解决方案。由于我对此事一无所知,所以我给出了答案。

如果您将错误消息的双引号复制粘贴到像这样的隐藏字符视图中,它将显示字符串中有一个隐藏的空\x00字符。

我删除了它:

toParse.toString().trim().replace(/\0/g, '')

这解决了我的问题。希望这对其他人有帮助。


推荐阅读