2016-10-22 100 views
0

我試圖用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的包來做到這一點。

+0

請提供完整的字符串(如這個確切的字符串不給任何錯誤) – Dekel

+1

'JSON.parse(JSON.stringify({「11.更多信息」:「http://www.mysilte.com/na5638 ?lid = 10064669521「}))'對我來說沒有錯誤(在FF或chrome上)。 – ASDFGerte

+0

不能重播:https://jsfiddle.net/vLk7n78g/。 –

回答

1

由於您的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字符串,但有時你不無法控制您獲得的輸入,所以此解決方案可能對您有所幫助)。

相關問題