什么是 JSON?带有示例的初学者指南
如果您接触过 API、配置文件或现代 Web 开发,那么您就已经接触过 JSON。它是系统之间交换数据的事实上的格式——对于人类来说足够可读,对于机器来说足够严格。这是一个适合初学者的教程,介绍它是什么以及如何使用它。
什么是 JSON
JSON 代表 JavaScript 对象表示法。尽管有这个名字,但它是独立于语言的——几乎每种编程语言都可以读取和编写它。它将数据表示为键值对和有序列表,它们一起可以描述几乎任何结构化数据。
一个简单的例子
{
"name": "Ada Lovelace",
"age": 36,
"isMathematician": true,
"linguals": ["English", "French"]
}
这是一个有四个键的对象。请注意数据类型:引号中的字符串、数字、布尔值和字符串数组。 JSON 支持字符串、数字、布尔值、null、对象和数组——这就是全部词汇。
让人绊倒的规则
- 键必须用双引号括起来 - 单引号无效。
- 无尾随逗号 - 最后一项分隔后的逗号。
- 没有注释 - JSON 没有注释语法(经常令人惊讶)。
- 字符串仅使用双引号,从不使用单引号。
这些小规则会导致大多数“无效 JSON”错误。官方语法定义于 json.org。
如何读取和修复凌乱的 JSON
API 返回 JSON 缩小到一行,这是不可读的。将其粘贴到我们的 JSON 格式化程序 中以获得干净、缩进的输出 - 以及指出任何语法错误的即时错误消息。这是调试格式错误的负载的最快方法。
在哪里您会遇到 JSON
API 响应、配置文件(例如 package.json)、JWT 的有效负载、NoSQL 数据库和浏览器 localStorage 都使用 JSON。一旦您可以轻松地阅读它,就会打开大量现代工具。
JSON 与 XML
JSON 在很大程度上取代了 Web API 的 XML,因为它更轻且更易于阅读。 XML 仍然出现在一些企业和文档上下文中,但对于新的 Web 工作,JSON 是默认值。如果您需要在格式之间转换,我们的转换器也可以处理。
嵌套:真实数据的结构
上面的示例很简单,但真正的 JSON 将对象和数组嵌套在一起以对复杂数据进行建模。用户对象可能包含一个“地址”对象和一个“订单”数组,每个订单本身就是一个对象。这种嵌套使得 JSON 可以描述几乎任何东西,但这也是可读性受到影响的地方,因为深度嵌套的缩小 JSON 无法用眼睛跟踪。这正是 格式化程序 发挥作用的时候,缩进每个级别,使结构一目了然。
常见的 JSON 错误及其修复方法
大多数“无效 JSON”失败都来自极少数错误:最后一项后面的逗号、单引号而不是双引号、不带引号的键或杂散注释。令人沮丧的是,一个坏字符会使整个文档无效,并且错误消息可能指向错误的位置。粘贴到突出显示确切行的验证器中可以节省实时时间 - 它可以精确定位人眼跳过的逗号或引号。
API 之外的 JSON
一旦您习惯了读取 JSON,您就会发现它无处不在:诸如 package.json 之类的配置文件、基础设施定义、诸如 MongoDB 之类的 NoSQL 数据库、浏览器 localStorage 以及 JWT 内的有效负载。它已成为数据交换的通用语言,正是因为它简单、人类可读且随处受支持。熟练掌握 JSON 可以悄然解锁大量现代工具。
底线
JSON 是一种用键、值和数组表示结构化数据的简单、通用的方法。了解一些严格的规则——双引号、没有尾随逗号、没有注释——并依靠格式化程序来验证和整理它。它是最有用的格式之一,需要熟练掌握。有关更多日常帮助,请参阅我们的网络开发人员工具包。