意外的令牌?在JSON的位置x的使用JSON.parse
问题描述:
我试图用JSON.parse
解析字符串字面对象:意外的令牌?在JSON的位置x的使用JSON.parse
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",
...
}
我尝试的回调逃脱?
:这部分:
var o = JSON.parse(str,function(k,v){
return (typeof v ==='string')? v.replace('?','') : v;
});
同样:(不工作..任何人都知道如何使用JSON.parse
或与任何Node.js的包来做到这一点。
答
由于您的JSON字符串是不真正的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字符串,但有时你不无法控制您获得的输入,所以此解决方案可能对您有所帮助)。
请提供完整的字符串(如这个确切的字符串不给任何错误) – Dekel
'JSON.parse(JSON.stringify({“11.更多信息”:“http://www.mysilte.com/na5638 ?lid = 10064669521“}))'对我来说没有错误(在FF或chrome上)。 – ASDFGerte
不能重播:https://jsfiddle.net/vLk7n78g/。 –