我們先來看一個JSON的組成:

{ "propertyName": "propertyValue"}

1. property(屬性/鍵值對)

2. propertyName(屬性名/鍵)

3. propertyValue(屬性值)

JSON可以表示四種基本類型(string(字符串)、number(數字)、booleans(布爾值)、null(空))和兩個結構化類型(Object(對象)、Arrarys(數組))

書寫

逗號

最後一個屬性後不能有逗號

雙引號

在標準中都使用了雙引號。因爲所有的屬性必須在雙引號內。但是布爾值或者數字可以不用引號。

結構層次

在設計JSON的時候,我們都能看見可擴展和不可擴展的JSON結構。其中最主要的就2種,一種爲扁平化數據,還有結構層次。

先講講我在知乎上看見的問題:

正常情況有一個JSON應爲:

[ { "name": "Javascript權威指南", "chapters:": 500, }, { "name": "Javascript高級程序設計", "chapters": 500, }, {...}, {...}]

這樣看是很完美,但是有些人會這樣設計?

[ { "Javascript權威指南": 500 }, { "Javascript高級程序設計": 500 }]

那麼我們就可以看出2種設計的問題,第二種無法擴展有木有!!而且。。他們爲啥要把數據內容帶入屬性名!!

ok!我們知道了一點,不要把數據內容帶入屬性名。

接下來扁平化數據:

{ "Image": { "width": 800, "Height": 600, "Title": "View from 15th Floor", "ThumbnailUrl": "http://www.example.com/image/481989943", "ThumbnailHeight": 125, "ThumbnailWidth": 100 }}

結構層次:

{ "Image": { "Width": 800, "Height": 600, "Title": "View from 15th Floor", "Thumbnail": { "Url": "http://www.example.com/image/481989943", "Height": 125, "Width": "100" }, }}

JSON中本應該以數據元素扁平化方式呈現。

但是結構層次對我們開發人員更加的友好有意義。

具體情況看自己的選擇。

下面講點細的

屬性名規範

屬性名應該一看就知道啥用屬性名必須是駝峯,ASCII碼字符串首字符必須是字母,_ (下劃線),$(美元符號)避免使用js中的保留字數組類型應該是複數,其他屬性名都爲單數

屬性值規範

屬性值應該爲四種基本類型(string(字符串)、number(數字)、booleans(布爾值)、null(空))和兩個結構化類型(Object(對象)、Arrarys(數組))其他的具體可以看我下面給出的參考資料鏈接

方法

JSON.parse()解析一個JSON將他轉換成JavaScript值或對象JSON.stringify()把一個對象或者值轉換成JSON字符串

查看原文 >>
相關文章