javascript中的Pase-json

javascript中的Pase-json,javascript,jquery,json,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); 我得到一个错误() 未捕获的语法错误:意外标记o 同时,正如您在这里看到的那样,我的json是有效的(很抱歉,您需要复制并超越json)这不是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);
我得到一个错误()

未捕获的语法错误:意外标记o


同时,正如您在这里看到的那样,我的json是有效的(很抱歉,您需要复制并超越json)

这不是json。您可以看到不同之处:

因此,如果您有一个带有json的字符串,您可以对其进行解析。如果你有propper香草对象,它会被解析

  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"}');

传递给
JSON.parse()
的不是字符串,这就是为什么。你经过一个物体。在典型的场景中,您希望
JSON.parse
返回该对象。你应该传递的是一个字符串


如果要从该对象中获取json字符串,请使用
json.stringify()
,在这种情况下,需要将字符串传递给json.parse

HTML


您试图解析的是Javascript对象,而不是JSON,JSON是字符串。我试图将jsvascript对象包装为fom JSON“我试图将jsvascript对象包装为fom JSON”,但您已经有了一个Javascript对象
{“foo”:42}
是一个JavaScript对象
'{“foo”:42}'
是一个包含JSON的字符串。JSON是一种文本的、独立于语言的数据格式,如YAML或XML。您更新的示例中的代码不会抛出您声称会抛出的错误。正如预期的那样,一定要花一些时间来学习和理解JavaScript对象和JSON之间的区别。它们看起来都很相似,但它们是两个完全不同的东西。
<div id="parsed"></div>
  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'];