javascript - 带有双引号的 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 ''
解决方案
通常,当您花时间清楚地解释您的问题时,您就会找到解决方案。由于我对此事一无所知,所以我给出了答案。
如果您将错误消息的双引号复制粘贴到像这样的隐藏字符视图中,它将显示字符串中有一个隐藏的空\x00
字符。
我删除了它:
toParse.toString().trim().replace(/\0/g, '')
这解决了我的问题。希望这对其他人有帮助。
推荐阅读
- css - 使用具有最大宽度的 img 时,Flex 项目不正确地增长
- javascript - 读取通过其他 JS 脚本更改的 Text 的 TextContent
- java - 为什么需要为要与 Solr Response 绑定的对象创建非参数构造函数?
- firebase - 为什么 Firebase 控制台在 SDK 已与我的 Android 和 iOS 应用程序集成时要求我实施 SDK?
- javascript - 如何在 mvc 的部分视图中使用模式弹出窗口
- algorithm - 图中的边属性
- javascript - Mongoose findOne 基于另一个文档导致未处理的 Promise Rejection 错误
- python - Django 锁定注销
- android - 如何在 MVVM 项目中正确使用 Dagger 范围?
- python - SQlite3 和 python 中的日期时间对象