2011-03-22 86 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