我正在使用node和request js从第三方api中
然后我尝试在前端应用程序中解析数据,结果出现以下错误(请参见标记后的空格):
所以,我尝试通过Postman运行它,看看问题出在哪里。 返回的JSON似乎是有效的,而且我还通过JSON验证器运行了它而没有问题。
在进一步调查结果后,我发现一个属性(文档类型)始终在双引号内有一个空格:
获取
json对象。 当我尝试解析
数据时,出现错误:SyntaxError:Unexpected token
。然后我尝试在前端应用程序中解析数据,结果出现以下错误(请参见标记后的空格):
SyntaxError:JSON中未预期的令牌位置294512处的令牌
。所以,我尝试通过Postman运行它,看看问题出在哪里。 返回的JSON似乎是有效的,而且我还通过JSON验证器运行了它而没有问题。
在进一步调查结果后,我发现一个属性(文档类型)始终在双引号内有一个空格:
{
"F24434": {
"Posting Date": "29-10-12",
"Open": "No",
"On Hold": "",
"Document Type": " ",
"External Document No.": "",
"Due Date": "29-10-12",
"Description": "xxxx",
"Order No.": "",
"Currency Code": "DKK",
"Remaining Amount": "0",
"Original Amount": "0",
"Amount": "0",
"User ID": "xxx",
"Systemdato": "29-10-12",
"Entry No.": "607121",
"Vessel No.": "",
"Port No.": ""
}
}
我不确定这是否是问题的原因,还是可能是其他原因?
不幸的是,我没有直接访问API的权限,因此无法更改数据结构的方式。
解决方案 事实证明,问题是双引号内的空格。解决方案是在解析之前删除所有空格:
.replace(/\s/g, '');
trim()
,但没有成功。 - TietjeDKconsole.log(s[294512])
来记录有问题的字符。如果没有打印任何内容,则可能是编码问题。 - bigblind