2011-03-22 88 views
1

我正在做一些与jQuery parseJSON函数的东西。jQuery parseJSON失败

这是代码,这是不工作

var obj = $.parseJSON("{'w':'w-1'}"); 
alert(obj.w); 

调试了一段时间,我改变了单引号双引号像下面的代码后,它能正常工作。

var obj = $.parseJSON('{"w":"wb-001"}'); 
alert(obj.w); 

一些相关的问题

1)我只是想知道为什么单引号不工作?

2)单引号可以正常工作,但不会与parseJSON配合使用,为什么?

var obj = eval("("+"{'w':'w-1'}"+")"); 
alert(obj.w); 

3)我一般写这样

var someString = "HELLO WORLD"; 

var someString = 'HELLO WORLD'; 

遇到上述问题,如果我做错事在我所有的过去的JavaScript编码,我想后。

Thanx提前, kvj

+0

http://www.jsonlint.com/ 希望这个链接能帮助你。 – pahan 2011-03-22 07:18:01

+0

它可以帮助他们检查JSON是否形成良好,但它不一定回答3个问题。 – alex 2011-03-22 07:21:32

+0

虽然 – pahan 2011-03-22 07:27:04

回答

5

1)JSON规范说使用双引号

字符串(双引号的Unicode用反斜杠)

Source

2)eval()不是JSON解析器,而是JavaScript评估器。它会像运行JavaScript一样运行你的字符串。

3)在JavaScript中,它们具有相同的含义。只要一致。我个人使用',因为我有时处理序列化的HTML,并且我使用"作为我的属性值。

+0

谢谢亚历克斯,它现在清晰:) – phpsessionid 2011-03-22 08:23:44