2010-11-13 99 views
4
<!DOCTYPE html> 

<html> 
<head> 
    <title></title> 
</head> 
<body> 
    <script>   
     var str = "{ 'foo': 'bar' }"; 
     var json = JSON.parse(str); 
    </script> 
</body> 
</html> 

此代码在第二个变量语句中引发错误。为什么? 器(Chrome说:“意外的标记非法”,火狐说:“JSON.parse”)JSON.parse抛出错误

+0

看一看在[JSON规范]上(http://json.org/):) – 2010-11-13 18:29:30

+0

@Felix好小子,规格为长。我没有时间做这件事。 :p – 2010-11-13 18:37:09

+0

Vidas:它的图像:-P;)我只是想表明,如何在JSON中定义一个字符串。 – 2010-11-13 18:43:57

回答

16

你应该使用双,而不是单引号:

var str = '{ "foo": "bar" }'; 
var json = JSON.parse(str); 
json['foo'] 
+0

Bah打败了我。是的,这个。 – Robert 2010-11-13 17:01:55

+0

很高兴知道:) – 2010-11-13 17:04:42

0

对我来说,这是比较容易,只需使用字符串()调用JSON.parse前的对象()

var retrievedObject = localStorage.foo; 
var encoded = JSON.parse(String(retrievedObject));