一.什么是JSON?

JSON全称是JavaScript Object Notation(JavaScript对象字面量),是一种存储和交换文本信息的语法,功能与XML很相似。

 

二.JSON的特点

1.JSON比XML更小,更快,是轻量级的文本数据交换格式。

2.JSON独立于语言,其使用Javascript语法来描述数据对象并且独立于语言和平台。

3.JSON具有自我描述性,更易理解。

 

三.JSON与XML的比较

相同点:

1.两者都是纯文本

2.都具有"自我描述性"(人类可读)

3.都具有层级结构(值中存在值)

不同点:

1.JSON没有结束标签,而XML必须有结束标签

2.JSON比XML更短

3.JSON比XML读写的速度更快

4.JSON可以使用数组

json序列化 Python json序列化原理_JSON

四.JSON的语法格式

JSON是JavaScript对象语法的子集,它完全基于JavaScript的语句结构。主要包含以下几个原则:

1.数据在名称/值对中

2.数据由逗号分隔

3.大括号保存对象

4.中括号保存数组

 

JSON数据的书写格式是:名称/值对。名称/值对包括字段名称(在双引号中),后面写一个冒号,然后是值,例如:

"name" : "Unity教程"

 

其中JSON值可以是如下的几种:

1.数字(整数或浮点数)

2.字符串(在双引号中)

3.逻辑值(true或false)

4.数组(在中括号中)

5.对象(在大括号中)

6.null

 

JSON数字可以是整型或者浮点型,例如:

{"age": 30}或{"pi": 3.1415}

 

JSON对象在大括号{}中书写,对象可以包含多个名称(key)/值(value)对,key必须是字符串,value可以是合法的JSON数据类型(字符串,数字,对象,数组,布尔值或null)。key和value中使用冒号(:)分割。每个key/value对使用逗号(,)分割。例如:

{"name": "Unity教程", "mainpage":"www.offcn.com"} 
JSON 数组在中括号中书写,数组可包含多个对象,例如:
{
"players":
[
{ "name": "tom", "score": "100"},
{ "name": "kate", "score": "200"},
{ "name": "smith", "score": "300"}
]
}
在上面的例子中,对象"players"是包含三个玩家对象的数组。每个玩家对象代表一条关于某个玩家的名字以及分数信息的记录。
 
JSON布尔值可以是true或者false,例如:
{"flag": true}
 
JSON可以设置null值,例如:
{"lesson": null}

json序列化 Python json序列化原理_XML_02

在Unity使用JSON格式来处理对象数据的标准流程:

json序列化 Python json序列化原理_json_03

 

 

 

json序列化 Python json序列化原理_XML_04

 

 

json序列化 Python json序列化原理_JSON_05