我正在尝试用JavaScript解析json
var str = '{"id-1": "www.er.co.uk","id-2": "www.wer.co.uk","id-3": "wer.wer.com","id-4": "www.wwaer.co.uk"}';
var divWebsite = JSON.parse(str);
我收到错误(fiddle)
未捕获的SyntaxError:意外的令牌o
虽然我的json同时有效,你可以在这里看到http://jsonlint.com/(对不起,你需要复制并过去json)
答案 0 :(得分:1)
那不是JSON。你可以看到差异:
http://jsfiddle.net/05dn7mpa/2/
因此,如果你有一个带有json的字符串,你可以解析它。如果你有一个propper vanilla对象,它就被解析了!
var divWebsite = JSON.parse('{ "id-1": "www.er.co.uk", "id-2": "www.wer.co.uk", "id-3": "wer.wer.com", "id-4": "www.wwaer.co.uk"}');
答案 1 :(得分:1)
在这种情况下,您需要将字符串传递给JSON.parse
HTML
<div id="parsed"></div>
JS
var divWebsite = JSON.parse('{"id-1": "www.er.co.uk","id-2": "www.wer.co.uk","id-3": "wer.wer.com","id-4": "www.wwaer.co.uk"}');
document.getElementById('parsed').innerHTML = divWebsite['id-1'];
答案 2 :(得分:0)
您传递给JSON.parse()
的内容不是字符串,这就是原因。你传递一个对象。在典型情况下,您希望JSON.parse
返回该对象。你应该传递的是一个字符串。
如果要从该对象中获取json字符串,请使用JSON.stringify()