【发布时间】:2020-05-14 10:20:01
【问题描述】:
我在 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)
任何帮助将不胜感激!
更新:必须对响应主体执行此操作才能使其正常工作
const data = response.body.replace(/^\uFFFD/, '').replace(/^\uFFFD/, '').replace(/\0/g, '')
【问题讨论】:
-
可能是字节顺序标记 (BOM) ...如果您发现它,请看这里:npmjs.com/package/strip-bom