简介:
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,通常用于在不同系统之间进行数据交换。它基于JavaScript语言的子集,但已成为独立于语言的格式,因此可以通过多种编程语言进行解析和生成。
JSON的特点包括:
1. **易于阅读和编写**:JSON使用易于理解的文本格式,使其对人类用户和计算机程序员都易于阅读和编写。
2. **轻量级**:JSON是一种轻量级的数据交换格式,比起XML等其他格式,JSON的数据描述更加紧凑,传输效率更高。
3. **与语言无关**:JSON是一种与编程语言无关的格式,因此可以在各种不同的编程语言中解析和生成。
4. **支持复杂数据结构**:JSON支持各种数据类型,包括字符串、数字、布尔值、数组、对象等,可以表示复杂的数据结构。
5. **易于解析**:由于其简单的语法规则,JSON易于解析和生成,几乎所有的现代编程语言都有相关的解析器和生成器。
6. **与Web技术兼容**:JSON最初是作为JavaScript的一种子集而开发的,因此与Web技术(如JavaScript、Ajax)兼容性良好,常用于Web应用程序中。
JSON重点概念:
数据、对象、数组
JSON语法规则要点:
JSON(JavaScript Object Notation)语法规则要点如下:
1. **数据在名称/值对中**:
- 数据以键值对的形式表示,名称和值之间使用冒号 `:` 分隔。
- 每个名称/值对之间使用逗号 `,` 分隔。
2. **对象用花括号定义**:
- 对象由一对花括号 {} 包围,表示一组无序的键值对集合。
- 键值对之间使用逗号 `,` 分隔。
3. **数组用方括号定义**:
- 数组由一对方括号 `[]` 包围,表示一组有序的值的集合。
- 数组中的值可以是任意类型的数据,包括字符串、数字、对象、数组、布尔值或null。
- 数组中的值之间使用逗号 `,` 分隔。
4. **值的数据类型**:
- 值可以是字符串、数字、对象、数组、布尔值或null。
- 字符串需要用双引号 `"` 括起来。
- 数字可以是整数或浮点数,不需要引号。
- 布尔值只能是 true 或 false。
- null表示空值。
5. **字符串规则**:
- 字符串必须用双引号 `"` 包围。
- 字符串中可以包含任意Unicode字符,但需要使用转义字符来表示特殊字符。
- 转义字符包括 `\b`(退格符)、`\f`(换页符)、`\n`(换行符)、`\r`(回车符)、`\t`(制表符)、`\"`(双引号)、`\\`(反斜杠)。
6. **空白符**:
- JSON允许在对象和数组中使用空白符(空格、制表符、换行符等),以增加可读性。
7. **注释**:
- JSON不支持注释。
总的来说,JSON的语法简单清晰,易于理解和使用,适合用于数据交换和存储。
JSON数据:
JSON数据以“名”“值”对呈现。数据“名”“值”由冒号分隔。JSON数据的书写格式是:
“JSON数据名”:JSON数据值
JSON数据举例:
"Year":2024
"UPR":"www.kurumi_blog.com"
注:JSON数据名称需要放在双引号中。
JSON数据值:
JSON数据值可以是以下内容:
- 数字(整数或浮点数)
- 字符串
- 逻辑值(true 或 false)
- 数组(在中括号中)
- 对象(在大括号中)
- null
注意:一个JSON数据名称只能对应一个值。以下是一系列JSON数据的举例。
数字示例:
"phonenumber":10086
"name":"kurumi"
"bool_value":true
JSON对象:
JSON对象在大括号{}中书写,对象可以包含单个或者多个JSON数据。对象(object) 是一个无序的数据集合(“‘名/值’对”集合)。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名/值’ 对”之间使用“,”(逗号)分隔。
单个数据的JSON对象:
{
"name":"kurumi"
}
多个数据的JSON对象:
{
"name":"kurumi",
"website":"www.kekedi.com"
}
多个数据的JSON对象,每个JSON数据又包含一个JSON对象:
{
"info": {
"name": "kurumi",
"website": "www.kekedi.com"
},
"date": {
"year": 2024,
"month": 4,
"day": 15
}
}
注:JSON对象中的数据使用逗号进行分隔。
对象中不能存放对象,以下示例是错误的:
{
{
"name": "kurumi",
"website": "www.kekedi.com"
},
{
"year": 2024,
"month": 4,
"day": 15
}
}
对象中也不能直接存放数组,以下示例是错误的:
{
"info": {
"name": "kurumi",
"website": "www.kekedi.com"
},
[
{
"temperature" : 25
}
]
}
JSON数组:
数组(array) 是相同元素的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔。 如下所示:
["faker","zeus","oner","gumayusi","keria"]
或者
[1,1,4,5,1,4]
数组可包含一个或多个对象,单个对象数组示例:
[
{
"name" : "kurumi",
"website" : "www.kekedi.com"
}
]
含多个对象数组示例:
[
{
"name" : "kurumi",
"website" : "www.kekedi.com"
},
{
"year": 2024,
"month": 4,
"day": 15
}
]
数组里面也可以有数组:
[
[
{
"name" : "kurumi",
"website" : "www.kekedi.com"
},
{
"year": 2024,
"month": 4,
"day": 15
}
],
[
{
"temperature" : 25,
}
]
]
请留意,在以上示例中。数组中的元素之间都是使用逗号进行分割的。
注意:数组不能直接存放JSON数据,以下示例是错误的:
[
"date": "2024-04-15",
"weekday": "MON"
]
JSON对象与数组混合存放:
{
"results": [
{
"location": {
"name": "Foshang",
"country": "CN"
},
"now": {
"text": "Clear",
"code": "1",
"temperature": "3"
},
"last_update": "2024-04-15T20:10:00+08:00"
}
]
}
通过以下示例我们可以看到,该JSON对象包含有一个数据,数据名为results,该数据的值是一个数组。此数组只含有一个对象。此对象包含有三个数据。这三个数据的名称分别是:location、now和last_update。其中location的值是含有两个数据的对象。now的值是含有三个数据的对象。last_update的值是字符串”2024-04-15T20:10:00+08:00″。
总结:
JSON文件乍一看很复杂,但只要注意以下几点就可以分析出JSON数据内容。
首先注意以下符号的含义:
:用于分隔数据的“名”和“值”
{} 标注对象内容
[]标注数组内容
,分隔数据、对象和数组
最关键的点:
1、对象用于存放数据(名值对)。
2、对象不能直接存放对象或数组。
3、数组存放元素有序号(序号起始值0)。
4、数组不能直接存放数据(名值对)。
JSON(JavaScript Object Notation)具有以下主要作用:
1. **数据交换**:JSON常被用于在不同系统之间进行数据交换。通过将数据格式化为JSON,可以轻松地在不同平台、不同语言的应用程序之间传输数据,而不需要担心数据格式的兼容性问题。
2. **Web服务**:在Web开发中,JSON常用于客户端和服务器之间的数据传输。例如,前端JavaScript可以通过AJAX请求从服务器获取JSON格式的数据,并将其解析为JavaScript对象后进行处理。
3. **配置文件**:JSON格式也可以用作配置文件的存储格式。许多应用程序使用JSON来存储和读取配置信息,例如Web应用程序的配置文件、API的配置等。
4. **API数据传输**:许多Web服务的API(Application Programming Interface)以JSON格式返回数据。开发人员可以通过HTTP请求获取JSON格式的数据,并将其解析为适当的数据结构用于在其应用程序中使用。
5. **移动应用程序**:JSON在移动应用程序开发中也非常常见。移动应用程序通常需要从服务器获取数据,而JSON是一种轻量级的数据格式,非常适合在移动设备上进行快速的数据传输和解析。
6. **数据存储**:一些数据库系统支持将数据以JSON格式存储,这样可以方便地存储复杂的数据结构,并且能够保持数据的易读性和可扩展性。
7. **跨平台开发**:由于JSON是一种与语言无关的数据交换格式,因此非常适合用于跨平台开发。无论是Web应用程序、移动应用程序还是桌面应用程序,都可以使用JSON作为数据交换的格式。
总的来说,JSON作为一种轻量级、易于理解和使用的数据交换格式,在各种领域都有着广泛的应用。
JSON非常的好用,只要掌握使用方法,通过不断的合理嵌套,就可以用它表达无数的信息量,在传输中非常的好用。