1
我一直在這個問題上,我搜索了在網絡和計算器的解決方案,但我不能得到什麼錯誤完全吻合。JSON解析錯誤使用Ajax應答串
這是通過Ajax調用來自服務器的JSON字符串。
{root:{name: "root",description: "root description",checked: false,1:{name: "item1",description: "item1 description",checked: true,1.1:{name: "item1.1",description: "item1.1 description",checked: true}}, 2:{name: "item2",description: "item2 description",checked: true}}}
使用下面的代碼,我收到後弦xmlhttp.readyState == 4 && xmlhttp.status == 200
var aData;
try{
aData =JSON.parse(xmlhttp.responseText);
}
catch(err){
alert(err);
}
它顯示像
Json.parse expected property name or '}'
但如果使用eval()函數的錯誤它工作正常
var aData;
try{
aData =eval('(' + xmlhttp.responseText + ')');
}
catch(err){
alert(err);
}
請exaplin這裏的錯誤是什麼。
謝謝。
編輯:
我檢查了json查看器中的字符串,它的工作正常。 http://jsonviewer.stack.hu/「>
嗯,這不是有效的JSON。鍵必須用雙引號。請參閱http://json.org/和http://jsonlint.com/。這是一個有效的JS對象字面值,這就是'eval'工作的原因。的 –
可能重複[阿賈克斯JSON解析錯誤](http://stackoverflow.com/questions/3428329/ajax-json-parse-error) –
我猜你不能打電話給你的項目1,2等作爲這些在javascript中不是有效的變量名稱。 –