JSON看这篇就好了

JSON

最近大量接触JSON 因此我特地去JSON标准(短短的8页,你们也能够看看)看了下,还参阅了许多资料,总结一下JSONgit

咱们先来看一个JSON的组成:github

{
  "propertyName": "propertyValue"
}
复制代码
  1. property(属性/键值对)
  2. propertyName(属性名/键)
  3. 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中本应该以数据元素扁平化方式呈现。

可是结构层次对咱们开发人员更加的友好有意义。

具体状况看本身的选择。

下面讲点细的

属性名规范

  • 属性名应该一看就知道啥用
  • 属性名必须是驼峰,ASCII码字符串
  • 首字符必须是字母,_ (下划线),$(美圆符号)
  • 避免使用js中的保留字
  • 数组类型应该是复数,其余属性名都为单数

属性值规范

  • 属性值应该为四种基本类型(string(字符串)、number(数字)、booleans(布尔值)、null(空))和两个结构化类型(Object(对象)、Arrarys(数组))
  • 其余的具体能够看我下面给出的参考资料连接

方法

  • JSON.parse()
    • 解析一个JSON将他转换成JavaScript值或对象
  • JSON.stringify()
    • 把一个对象或者值转换成JSON字符串

参考

相关文章
相关标签/搜索