最近大量接觸JSON
因此我特地去JSON
標準(短短的8頁,你們也能夠看看)看了下,還參閱了許多資料,總結一下JSON
git
咱們先來看一個JSON
的組成:github
{
"propertyName": "propertyValue"
}
複製代碼
JSON能夠表示四種基本類型(string(字符串)、number(數字)、booleans(布爾值)、null(空))和兩個結構化類型(Object(對象)、Arrarys(數組))json
最後一個屬性後不能有逗號數組
在標準中都使用了雙引號。由於全部的屬性必須在雙引號內。可是布爾值或者數字能夠不用引號。ide
在設計JSON
的時候,咱們都能看見可擴展和不可擴展的JSON結構。其中最主要的就2種,一種爲扁平化數據,還有結構層次。ui
先講講我在知乎上看見的問題:google
正常狀況有一個JSON應爲:spa
[
{
"name": "Javascript權威指南",
"chapters:": 500,
},
{
"name": "Javascript高級程序設計",
"chapters": 500,
},
{...},
{...}
]
複製代碼
這樣看是很完美,可是有些人會這樣設計?設計
[
{
"Javascript權威指南": 500
},
{
"Javascript高級程序設計": 500
}
]
複製代碼
那麼咱們就能夠看出2種設計的問題,第二種沒法擴展有木有!!並且。。他們爲啥要把數據內容帶入屬性名!!code
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中本應該以數據元素扁平化方式呈現。
可是結構層次對咱們開發人員更加的友好有意義。
具體狀況看本身的選擇。