JSON数据格式语法

2020-02-06大约7分钟

JSON的语法很简单,因为JSON能够表达的数据类型只有五种:

  1. 字符串(String)
  2. 数值(Number)
  3. 布尔值(Boolean)
  4. 对象(Object)
  5. 数组(Array)

那我们接下来看看每种数据类型的具体说明:

1. 字符串(String)

把一个或多个字符用英文的双引号""来表示。除了少数特殊字符"\/和一些控制符(\b\f\n\r\t)需要编码外,其他 Unicode 字符可以直接输出。比如例子:

"abc"
"This is an \"Apple\""
"123"

注意的是:

  1. 特殊字符需要用\进行转义;
  2. 数字如果加了双引号,也是个字符串;
  3. 一定要用英文的双引号" ",不能用中文的双引号“ ”

2. 数值(Number)

可以是整型或浮点数,跟大多数编程语言里的写法是一样的。比如:

12345
-3.9e10

3. 布尔值(Boolean)

Boolean类型表示为truefalse。此外,JavaScript 中的null被表示为null,注意truefalsenull都没有双引号,否则将被视为一个 String 。例子:

true
false
null

4. 对象(Object)

Object在JSON 中是用{}包含一系列无序的 Key-Value 键值对表示的,如果有多个键值对,用英文逗号,分开。比如:

{
    "name": "Joy", 
    "age": 20, 
    "married": false
}

需要注意:

  1. 键,即对象的属性名,必须用双引号""来表示;
  2. 多个键值对,分隔符也是英文逗号,
  3. 最后一个键值对,后面不能有逗号

5. 数组(Array)

使用[]包含所有元素,每个元素用逗号,分隔,元素可以是任意的值。比如:

["abc", 123, true, null, {"name": "Joy"}]

上面的例子都是比较简单的例子,再看一个较为复杂的例子:

{
    "company": "www.lema.fun",
    "address": {
        "province": "Guangdong",
        "city": "Shenzhen"
    },
    "age": 5,
    "employees":[  
        {"name":"Shyam", "email":"shyamjaiswal@gmail.com"},  
        {"name":"Bob", "email":"bob32@gmail.com"},  
        {"name":"Jai", "email":"jai87@gmail.com"}  
	]
}  

数组可以包含任何对象或值,而对象的属性的值也可以对象或数组,所以组合起来,就非常灵活了。

JSON里是没有日期类型表示法的,所以在JSON里可以转成用字符串或数字来表示。比如:"2020-02-06T03:49:26.240Z"或1580960985927,然后程序使用的时候,可以再进一步把这个值转成程序内部的日期类型。