什么是JSON:理解语法、存储JSON数据、示例

什么是JSON:理解语法、存储JSON数据、示例

JSON(JavaScript Object Notation)是一种为数据交换而设计的基于文本的文件格式。它表示基于JavaScript对象语法的结构化数据。因此,JavaScript程序可以将JSON数据转换为原生JavaScript对象,而无需解析或序列化数据。

JSON因其自描述、易于理解、轻量级和紧凑的风格而广受欢迎。它与许多编程语言、环境和库兼容。

在本文中,我们将解释JSON是什么以及如何使用它来管理数据。我们还将为您提供可下载的备忘单,以帮助您了解这种数据格式。

什么是JSON文件以及为什么要使用它

JSON是一种存储结构化信息的格式。它主要用于在服务器和客户端之间传输Web应用程序数据。JSON以字符串或对象的形式出现在扩展名为.json的文件中或在引号内,以其他文件格式分配给变量。

JSON是扩展标记语言 (XML) 的一种简单且轻量级的替代方案,XML作为一种数据交换格式已经变得不那么普遍了。这是因为将XML转换为JavaScript对象需要数十到数百行代码,并且需要根据要解析的特定元素进一步定制。

相比之下,JSON解析器只需一行代码即可将文本转换为JavaScript,因为两者的语法非常相似。

JSON利用服务器端解析来提高响应能力。该过程不需要任何关于被解析对象的先验知识。这就是JSON被广泛用作标准数据交换格式的原因。

此外,它允许用户通过使用称为JSON padding (JSONP) 的方法从不同域请求数据,该方法采用回调函数来传输JSON数据。它有效地绕过了同源策略的限制。

了解JSON语法

由于JSON结构基于JavaScript对象文字语法,因此它们有许多相似之处。

这些是JSON语法的核心元素:

  • 数据以key/value对的形式呈现。
  • 数据元素用逗号分隔。
  • 花括号{}确定对象。
  • 方括号[]表示数组。

因此,JSON对象字面量语法如下所示:

{“key”:“value”,“key”:“value”,“key”:“value”.}

什么是JSON:理解语法、存储JSON数据、示例插图1

值的类型

在本节中,我们将讨论JSON值的类型。

Array

数组是值的有序集合。数组值可以包含JSON对象,这意味着它使用相同的键/值对概念。例如:

{
"students":[
{"firstName":"Tom", "lastName":"Jackson"},
{"firstName":"Linda", "lastName":"Garner"},
{"firstName":"Adam", "lastName":"Cooper"}
]
}

方括号内的信息构成了三个对象的数组。

什么是JSON:理解语法、存储JSON数据、示例插图2

Object

JSON对象由两个组件对组成:

  • Keys是字符串——被引号包围的字符序列。
  • Values是有效的JSON数据类型。它们可以是数组、对象、字符串、布尔值、数字或空值的形式。

冒号放在每个键和值之间,用逗号分隔对。这两个组件都用引号引起来。

{
"employees":{
   "firstName":"Tom",
   "lastName":"Jackson"
}
}

在这里,employees是关键,而花括号内的一切都是对象。

什么是JSON:理解语法、存储JSON数据、示例插图3

String

字符串值是零个或多个Unicode字符的集合序列,它们用双引号括起来。

例如:

{"firstName":"Tom"}

此示例显示Tom表示一个字符串,因为它是双引号内的一组字符。

Number

JSON中的数字应该是integerfloating point

例如:

{“age”:30}

Boolean

Boolean包含truefalse作为值。

例如:

{“married”:false)

Null

Null是一个空值。这是为了表明没有信息。

例如:

{"bloodType":null}

存储JSON数据的方法

存储JSON数据的方法有两种——对象和数组。前者是键/值对集合,而后者是值列表。

在本节中,我们将进一步解释使用对象和数组存储JSON数据。

使用对象

JSON对象以大括号开头和结尾。它包含称为属性的键/值对,每行用逗号分隔。每个键和值之间都有一个冒号。

虽然键必须是字符串,但值可以是六种JSON数据类型中的任何一种——字符串、数字、对象、数组、布尔值或空值。

请注意,JSON对象与JSON数据类型中的对象不同。前者用作存储数据的方法,而后者表示键/值对的关联数组。

让我们看一个例子,我们有三个键/值对。firstName、lastNamegender是键,Tom、Jacksonmale是值。

JSON对象将如下所示:

{
"firstName":"Tom",
"lastName":"Jackson",
"gender":"male"
}

使用的值是字符串,因此,它们也在引号内,就像键一样。

使用数组

另一种存储数据的方法是使用数组。这些值用方括号括起来,每行用逗号分隔。JSON数组中的每个值都可以是不同的类型。

请记住,JSON数组不同于作为值的数组——后者由有序的元素集合组成,通常都是相同类型。

看看这个例子:

{
"firstName":"Tom",
"lastName":”Jackson”,
“gender”:”male”,
"hobby":[
“football", 
"reading", 
"swimming"
]
}

这与之前的方法不同的是第四个键/值对。hobby是关键,方括号中有几个值(足球、阅读、游泳)代表一个数组。

当与JSONP配对时,数组可以用来克服跨域问题。它们还支持循环,让用户运行重复的命令来查找数据,从而使过程更快、更有效。

JSON备忘单

下载JSON备忘单。

使用JSON编码

这是JSON用法的一个简单示例——为了清楚起见,我们将分解每个元素。

{
  "className":"Class 2B",
  "year":2022,
  "phoneNumber":null,
  "active":true,
  "homeroomTeacher":{"firstName":"Richard", "lastName":"Roe"},
  "members":[{
      "firstName":"Jane","lastName":"Doe"},
      {"firstName":"Jinny","lastName":"Roe"},
      {"firstName":"Johnny","lastName":"Roe"},
      ]
}

以下是每对表示的内容:

  • 第一行 “className”:”Class 2B” 是一个字符串。
  • 第二对 “year”:2022 有一个数值。
  • 第三对 “phoneNumber”:null 代表一个空值——没有值。
  • 第四对 “active”:true 是一个布尔表达式。
  • 第五行 “homeroomTeacher”:{ “firstName”:”Richard”, “lastName”:”Roe” }表示一个对象字面量。
  • 最后,从第六行开始的脚本是一个数组。

小结

JavaScript Object Notation (JSON) 是一种人类可读的基于文本的格式,专为数据交换而设计。许多编程语言、环境和库都支持它。

JSON值得注意,因为它允许用户使用JSONP功能跨域请求数据。更重要的是,它比XML更简单、更轻量级。

JSON语法由两个核心元素组成——作为六种可用数据类型之一的值和作为字符串的键。

在存储数据方面,JSON提供了两种方法:

  • 对象。此方法以大括号开头和结尾,并且有两个或多个键/值对,用逗号分隔它们。每个键后面都有一个冒号,以将其与关联的值区分开来。
  • 数组。此方法使用方括号将元素括起来,并用逗号分隔它们。

评论留言