Json-轻量级数据交换格式

前言:

JSON :JavaScript Object Notation – JS 对象简谱。一种理想的数据交换语言,是完全独立于编程语言的文本格式来储存和表示数据,易于人阅读和编写,同时也易于机器解析和生成。

JSON 语法

语法规则

在 JS 语言中,一切都是对象。所以,任何类型都可以通过 JSON 来表示。

  • 对象表示为键值对,花括号表示对象。

  • 数据由逗号分隔,方括号保存数组

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    //对象
    {"key1" : "value1", "key2" : "value2"}

    //数组
    ["value1", "value2", "value3"]

    //数组中的两个对象
    [{"key1" : "value1", "key2" : "value2"},{"key3" : "value3", "key4" : "value4 }]

    //对象中的数组
    {"name" : "tom","爱好": ["篮球","足球","跑步"]}

JSON 键/值对

​ JSON 键值对是用来保存 JS 对象的一种方式,和 JS 对象的写法也差不多。

1
{ "firstName": "JSON" 

​ 等价于JavaScript中的这条语句:

1
{ firstName : "JSON" }

JSON 和 JS 对象的关系

​ **JSON 是 JS 对象的字符串表示法,它使用文本表示一个 JS 对象,本质是一个字符串。 **如:

1
2
3
var obj = {a: 'Hello',b: 'Word'};//这是一个对象,键名也可以使用引号包裹

var json = {"a": "Hello", "b": "Word"};//这是一个 JSON 字符串,本质是一个字符串

JSON 和 JS 对象互转

​ JSON对象 –> JS 字符串,使用 JSON.parse()方法:

1
2
var obj = JSON.parse('{"a": "Hello","b": "Word"}');
//结果是{a: 'Hello',b: 'Word'}

​ JS 对象 –> JSON 字符串,使用 JSON.stringify()方法

1
2
var json = JSON.stringify({a: 'Hello',b: 'Word'});
//结果是 '{"a": "Hello", "b": "Word"}'

JSON 与 HTML 对比

JSON 格式:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
{	// 键值对
"name": "中国",
//对象中有数组,数组中又有对象
"province": [{
"name": "黑龙江",
"cities": {
"city": ["哈尔滨", "大庆"]
}
}, {
"name": "广东",
"cities": {
"city": ["广州", "深圳", "珠海"]
}
}, {
"name": "台湾",
"cities": {
"city": ["台北", "高雄"]
}
}, {
"name": "新疆",
"cities": {
"city": ["乌鲁木齐"]
}
}]
}

HTML 格式:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?xml version="1.0" encoding="utf-8"?>
<country>
<name>中国</name>
<province>
<name>黑龙江</name>
<cities>
<city>哈尔滨</city>
<city>大庆</city>
</cities>
</province>
<province>
<name>广东</name>
<cities>
<city>广州</city>
<city>深圳</city>
<city>珠海</city>
</cities>
</province>
<province>
<name>台湾</name>
<cities>
<city>台北</city>
<city>高雄</city>
</cities>
</province>
<province>
<name>新疆</name>
<cities>
<city>乌鲁木齐</city>
</cities>
</province>
</country>

​ 通过对比,看得出 JSON 语言更简单,而HTML结构更加明晰。