admin管理员组

文章数量:814956

意外令牌?在JSON中的位置0

我在node.js中向一个url发出get请求,该请求返回我尝试解析的对象。但是,我得到了意外的令牌错误。我使用了不同的编码,并将响应主体转换为字符串,然后删除了这些标记,但没有任何效果。将编码设置为null也不能解决我的问题。

下面是响应主体即时消息:

��[{"unit":"EN15","BOX":"150027","CD":"12 - Natural Gas Leak","Levl":"1","StrName":"1000 N Madison Ave","IncNo":"2020102317","Address":"1036 N Madison Ave","CrossSt":"W 5TH ST/NECHES ST"},{"unit":"EN23","BOX":"230004","CD":"44 - Welfare Check","Levl":"1","StrName":"S Lancaster Rd / E Overton Rd","IncNo":"2020102314","Address":"S Lancaster Rd / E Overton Rd","CrossSt":""}]

这些是符合我要求的标题

headers: {'Content-Type': 'text/plain; charset=utf-8'}

这是我解析响应正文的方式

const data = JSON.parse(response.body)

任何帮助将不胜感激!

回答如下:

您可能正在获得UTF-8字符串的字节顺序标记(BOM)。

最简单的workeround是在解析之前将其删除。

const data = JSON.parse(response.body.toString('utf8').replace(/^\uFEFF/, ''));

本文标签: 意外令牌在JSON中的位置0