JSON看這篇就行
我們先來看一個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字符串
查看原文 >>