我正在尝试使用JSON.parse
将String解析为文字对象:
var o = JSON.parse(str);
我收到此错误:
SyntaxError: Unexpected token ? in JSON at position 362
at Object.parse (native)
知道该部分的
?
发生错误:{...
"11. More Info":"http://www.mysilte.com/na5638\?lid=10064669521",
...
}
我尝试通过
?
的回调转义JSON.parse
:var o = JSON.parse(str,function(k,v){
return (typeof v ==='string')? v.replace('?','') : v;
});
相同的:(,不起作用..任何人都知道如何使用
JSON.parse
或任何node.js软件包来执行此操作。 最佳答案
由于您的json-string不是真正的json字符串(但可能接近),因此您可能要“修复”在字符串中遇到的\\?
问题。
这是一个例子:
a = '{"11. More Info":"http://www.mysilte.com/na5638\\?lid=10064669521"}'
try {
JSON.parse(a)
} catch (e) {
console.log("can't parse the string as JSON string")
}
json_obj = JSON.parse(a.replace("\\?", "?"))
console.log(json_obj)
我真的不推荐这样做,您可能应该确保在解析之前获得正确的json-string,但有时您无法控制所获得的输入,因此此解决方案可能会对您有所帮助。
关于javascript - 意外的标记 ?使用JSON.parse在位置x的JSON中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40187881/