章
目
录
JSON(JavaScript对象表示法)是一种开放标准格式,它是一种轻量级的基于文本的格式,专门设计用于人类可读的数据交换。它是一种与编程语言无关的数据格式,支持几乎所有类型的编程语言、框架和库。
在2000年代初期,JSON最初由Douglas Crockford规定。2013年,JSON被标准化为ECMA-404,2017年发布了RCF 8259。
JSON是一种用于在Web上交换数据的开放标准。它支持数据结构,如对象和数组,因此很容易从JSON中编写和读取数据。
在JSON中,数据以键-值对的形式表示,花括号用于包含对象,在每个名称后面跟有冒号。逗号用于分隔键-值对。方括号用于包含数组,其中每个值以逗号分隔。
JSON的特点
包括:
- 简单性
- 开放性
- 自我描述性
- 国际化
- 可扩展性
- 互操作性
为什么我们使用JSON?
由于与其他可用选项相比,JSON是一种易于使用的轻量级语言数据交换格式,因此可用于API集成。以下是JSON的优点:
- 更少冗长:与XML相比,JSON采用紧凑风格以提高用户可读性。在处理复杂系统时,JSON往往会带来显著的改进。
- 更快:与XML相比,JSON解析过程更快,因为XML中的DOM操作库需要额外的内存来处理大型XML文件。但是,JSON需要更少的数据,最终减少了成本并提高了解析速度。
- 可读性:JSON结构易于阅读和理解。无论您使用哪种编程语言,都可以轻松地映射领域对象。
- 结构化数据:在JSON中使用了映射数据结构,而XML遵循了树状结构。键-值对限制了任务,但有助于创建可预测且易于理解的模型。
JSON数据类型
以下是最常用的JSON数据类型。
数据类型 | 描述 | 示例 |
---|---|---|
字符串 | 字符串总是用双引号括起来。它可以包含数字、字母和特殊字符。 | “student”, “name”, “1234”, “Ver_1” |
数字 | 数字代表数值字符。 | 121, 899 |
布尔值 | 它可以是真(True)或假(False)。 | true |
空值 | 这是一个空的数值。 |
JSON对象
在JSON中,对象指的是包含在花括号中的字典,即{ }。这些对象是以键/值对的形式编写的,其中键必须是字符串,值必须是有效的JSON数据类型,如字符串、数字、对象、布尔值或null。键和值之间由冒号分隔,每个键/值对由逗号分隔。
示例:
{"name" : "Jack", "employeeid" : 001, "present" : false}
JSON数组
在JSON中,数组可以被理解为对象的列表,主要包含在方括号中[ ]。数组的值可以是字符串、数字、对象、数组、布尔值或null。
示例:
[
{
"PizzaName": "Country Feast",
"Base": "Cheese burst",
"Toppings": [
"Jalepenos",
"Black Olives",
"Extra cheese",
"Sausages",
"Cherry tomatoes"
],
"Spicy": "yes",
"Veg": "yes"
},
{
"PizzaName": "Veggie Paradise",
"Base": "Thin crust",
"Toppings": [
"Jalepenos",
"Black Olives",
"Grilled Mushrooms",
"Onions",
"Cherry tomatoes"
],
"Spicy": "yes",
"Veg": "yes"
}
]
在上面的示例中,”Pizza”对象实际上是一个数组。它包含了五个对象,即PizzaName、Base、Toppings、Spicy和Veg。
JSON与XML的区别
JSON代表JavaScript对象表示法,而XML代表扩展标记语言。如今,JSON和XML广泛用作数据交换格式,并已被应用程序作为一种存储结构化数据的技术采用。
JSON和XML之间的区别包括:
方面 | JSON | XML |
---|---|---|
学习难度 | 学习容易。 | 比JSON更复杂学习。 |
读写简便 | 读写简单。 | 比JSON更复杂的读写。 |
数据结构 | 面向数据。 | 面向文档。 |
安全性 | 相对于XML较不安全。 | 高度安全。 |
显示能力 | 不提供显示能力,因为它是一种标记语言。 | 提供显示能力,因为它是一种标记语言。 |
数组支持 | 支持数组。 | 不支持数组。 |
示例 |
|
|