Elaiza's Bookshop

JSON Learning -1-

字数统计: 620阅读时长: 2 min
2018/05/14 Share

什么是JSON

1.先给JSON下个定义

  1. JSON(JavaScript Object Notation)——JavaScript对象表示法。
  2. JSON是一种被多种系统用于交换数据的数据交换格式。
  3. JSON独立于编程语言,和JavaScript有着一定的关系(来源于JavaScript的一个子集),它是基于JavaScript对象字面量表示法
  4. JSON表达数据的方式对通用的编程概念很友好

2.JSON的表示

JSON利用名称-值对(或者说是键值对)来描述一个具体的属性或者事物。

JSON利用双引号来将名称进行包裹,然后使用冒号分隔名称和值,如下图所示:

1
2
"animal" : "cat"
"country" : "China"

注:为了获得最大的可移植性,应该尽可能避免空格以及特殊字符。

但是,这还没有结束!

JSON的完整表示方法还需要花括号”{ … }”的帮助,用它来包裹整个对象,还可能会用到方括号”[ … ]”,用它来包裹数组,逗号”,”也很重要,用它来分隔对象中的名称-值对或者数组中的值。有如下示例:

1
2
3
4
5
6
7
8
9
{
"type" : "plankton",
"color" : "green",
"type" :
[
"phytoplankton",
"zooplankton"
]
}

3.JSON的数据类型

  • 对象
  • 字符串
  • 数字:
    1. 整型
    2. 浮点型
    3. 定点数
  • 布尔值
  • null
  • 数组

1)对象类型

/* 嵌套对象 */

1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
"person" : {
"name" : "Lindasy Bassett",
"heightInInches" : 66,
"head" : {
"hair" : {
"color" : "light blond",
"length" : "short",
"style" : "A-Line"
},
"eyes" : "green"
}
}
}

2)字符串类型

下列字符需要进行转义

需要转义的字符 名称
\” 双引号
\\ 反斜线
\/ 正斜线
\b 退格符
\f 换页符
\t 制表符
\n 换行符
\r 回车符
\u 后面跟十六进制字符

3)数字类型

JSON中的数字可以是整数、小数、负数或者指数

1
2
3
4
5
6
{
"INT" : 225,
"DECIMAL" : 22.555,
"NEGATIVE" : -225.55,
"INDEX" : 2.25e+25
}

4)布尔类型

JSON中的布尔类型字面值仅仅允许小写形式——true or false

1
2
3
4
{
"haveKey" : true,
"haveDoor" : false
}

5)null类型

null是一个表示“没有值”的值,并且null必须小写

6)数组类型

数组中可以容纳不同类型的数值,但是不建议这么做,即使它在JavaScript中可行,但是在其他编程语言中可能不适用。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
{
"test" : [
{
"question" : "2X + Y = 5 and X + Y = 3",
"answer" : {
"X" : 2,
"Y" : 1
}
},
{
"question" : "The SKY is blue",
"answer" : true
},
{
"question" : "a cat looks like a dog.",
"answer" : false
}
]
}

多维数组

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
{
"tests" : [
[
true,
false,
false,
true
],
[
false,
true,
false,
false
],
[
false,
true,
true,
true
]
]
}
CATALOG
  1. 1. 什么是JSON
    1. 1.1. 1.先给JSON下个定义
    2. 1.2. 2.JSON的表示
    3. 1.3. 3.JSON的数据类型
      1. 1.3.1. 1)对象类型
      2. 1.3.2. 2)字符串类型
      3. 1.3.3. 3)数字类型
      4. 1.3.4. 4)布尔类型
      5. 1.3.5. 5)null类型
      6. 1.3.6. 6)数组类型