在javascript中的Pase json

时间:2015-09-17 13:57:06

标签: javascript jquery json

我正在尝试用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)

3 个答案:

答案 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'];

JSFIDDLE

答案 2 :(得分:0)

您传递给JSON.parse()的内容不是字符串,这就是原因。你传递一个对象。在典型情况下,您希望JSON.parse返回该对象。你应该传递的是一个字符串。

如果要从该对象中获取json字符串,请使用JSON.stringify()