我正在使用node并get从第3方api 请求js到json对象。当我尝试parse数据时出现错误:
SyntaxError: Unexpected token
然后,我尝试解析前端应用程序中的数据,从而导致以下错误(请参见令牌后的空白):
SyntaxError: Unexpected token in JSON at position 294512
所以我试图通过邮递员运行它,看看有什么问题。返回的JSON似乎有效,并且我也通过JSON验证程序运行了我,没有出现问题。
在对结果进行更多调查之后,我发现一个属性(文档类型)在双qoutes内始终具有空白:
{
"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.": ""
}
}
Run Code Online (Sandbox Code Playgroud)
我不确定这是否会导致问题,还是其他原因?
不幸的是,我没有直接访问API的权限,因此无法更改数据的结构方式。
解决方案 事实证明,它是双引号内的空格。解决方案是在解析之前删除所有空格:
.replace(/\s/g, '');
小智 1
我刚刚遇到了同样的问题,在我的例子中,结果发现该字符串末尾附加了许多空字符。用 解决了它myString.split(String.fromCharCode(0)).join("")。
在我看来,双引号内的空格就像一个完全有效的字符串。我认为这不是你的情况的问题。
| 归档时间: |
|
| 查看次数: |
1331 次 |
| 最近记录: |