天天看點

JavaScript、Json中的單引号、雙引号

而在JSON中,因為JSON是一種資料傳輸格式,各種語言、各種作業系統、各種平台實際上是共享的,共同遵守這麼一種标準,共同為其做一些工作以便JSON在各語言、系統、平台都能具備良好的可移植性。是以首先JSON就不可能采用單引号、雙引号都有效的特性(那可移植性就差勁了,各種語言還都得準備好相容單引号、雙引号了)。

JSON的基礎是鍵值對,所有的鍵都是用雙引号的!而值的類型就多了,常用的有字元串(必須使用雙引号),真假值(true、false,注意"true"表示字元串!),數字(直接寫1,2,3,4,不帶單雙引号)。當然JSON展開講内容很多,以後有機會詳述。

是以看到JavaScript中,如下代碼,怎麼是鍵值的鍵不帶引号,而值有時候單引号有時候雙引号不必奇怪,嚴格意義上來說此處的鍵是參數名,而字元串值json/tree_data.json之是以采用單引号隻是因為外面采用雙引号了,此處單引号更友善。

data-options="url:'json/tree_data.json',animate:true,lines:true">

1

那麼在json中,如果有:

1    url:'xxxx.html'

2    url:"xxx.html"

3    'url':"xxx.html"

2

3

上面3個肯定都是根本不合文法的,而下面三個如果不考慮意義的話,僅從文法上講是可行的。注意下一般來說,像json和xml等資料交換格式,會具備兩種校驗。最基本肯定是文法校驗,首先你就得遵循我最基本的文法格式,不然就沒法交換了。其次就是語義上的校驗,比如"url":1,url如果在一個應用中表示位址/連結,那麼後面跟個數字就是不合語義的,跟語義校驗相關的一般叫做Schema,比如xml schema,json schema。

1    "url":"xxxx.html"

2    "url":1

3    "url":true

一般來說團隊開發中經常需要采用schema,相當于大家在資料交換格式的語義上采用一緻标準(文法無所謂,肯定必須是一緻的,否則直接就報錯了)。

繼續閱讀