是什么导致了第三行的错误?
var products = [{
"name": "Pizza",
"price": "10",
"quantity": "7"
}, {
"name": "Cerveja",
"price": "12",
"quantity": "5"
}, {
"name": "Hamburguer",
"price": "10",
"quantity": "2"
}, {
"name": "Fraldas",
"price": "6",
"quantity": "2"
}];
console.log(products);
var b = JSON.parse(products); //unexpected token o
打开控制台查看错误
发布于 2018-03-28 09:30:20
假设你知道它是有效的JSON,但你仍然得到这个...
在这种情况下,可能从字符串中隐藏/特殊字符来自获取它们的任何来源。当你粘贴到验证器中时,它们会丢失 - 但是在字符串中它们仍然存在。那些无形的chars将会被打破JSON.parse()
如果s
你的原始JSON,然后清理它:
// preserve newlines, etc - use valid JSON
s = s.replace(/\\n/g, "\\n")
.replace(/\\'/g, "\\'")
.replace(/\\"/g, '\\"')
.replace(/\\&/g, "\\&")
.replace(/\\r/g, "\\r")
.replace(/\\t/g, "\\t")
.replace(/\\b/g, "\\b")
.replace(/\\f/g, "\\f");
// remove non-printable and other non-valid JSON chars
s = s.replace(/[\u0000-\u0019]+/g,"");
var o = JSON.parse(s);
https://stackoverflow.com/questions/-100007817
复制相似问题