最近大量接触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中本应该以数据元素扁平化方式呈现。
可是结构层次对咱们开发人员更加的友好有意义。
具体状况看本身的选择。