JSON 介绍

什么是 JSON?

了解 Web 上最流行的数据交换格式。学习它的语法、用法,以及为什么它成为了现代 API 的标准。

定义

JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式。它易于人阅读和编写,同时也易于机器解析和生成。它是基于 JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999 的一个子集。

JSON 有什么用处?

JSON 主要用于在服务器和 Web 应用程序之间传输数据,是 XML 的替代方案。

Web API

REST API 发送和接收数据的标准格式。

配置文件

许多现代应用程序(如 VS Code、package.json)使用 JSON 存储设置。

数据存储

MongoDB 和 CouchDB 等 NoSQL 数据库使用类 JSON 文档进行存储。

核心特性

为什么 JSON 能够成为数据交换的事实标准?

轻量级

比 XML 更简洁,文件体积更小,网络传输更快。

语言无关

几乎所有编程语言(Python, Java, C#, PHP 等)都支持且易于解析。

自描述性

结构清晰,易于阅读和理解。

原生 JS 支持

JavaScript 引擎可直接解析和处理,无需额外库。

JSON 语法

JSON 建构于两种结构:“名称/值”对的集合(对象)和值的有序列表(数组)。

1

数据在名称/值对中

名称/值对包括字段名称(在双引号中),后面跟一个冒号,然后是值。

2

数据由逗号分隔

每个名称/值对或数组中的值由逗号分隔。

3

花括号保存对象

对象由花括号 {} 包围。一个对象可以包含多个名称/值对。

4

方括号保存数组

数组由方括号 [] 包围。一个数组可以包含多个值。

{
  "string": "Hello World",
  "number": 42,
  "boolean": true,
  "null": null,
  "object": {
    "key": "value"
  },
  "array": [
    1,
    2,
    3
  ]
}

JSON vs XML

对比这两种最流行的数据交换格式。

特性JSONXML
可读性易读(干扰少)较难(标签冗余)
解析速度快(原生支持)慢(需要解析器)
数据类型丰富(字符串、数字、数组...)主要是字符串
体积紧凑庞大(闭合标签)

使用建议

如何高效使用 JSON 并避免常见误区。

使用 UTF-8 编码

始终使用 UTF-8 编码 JSON 数据,以确保跨系统兼容性。

日期使用 ISO 8601

JSON 没有日期类型。请使用 ISO 8601 字符串(如 "2023-01-01T12:00:00Z")。

避免尾随逗号

标准 JSON 不允许尾随逗号,这会导致解析错误。

Key 使用驼峰命名

按照惯例,JSON 键名使用驼峰命名法(如 "userName")以保持一致性。

常见问题

JSON 只是给 JavaScript 用的吗?

不是。虽然 JSON 衍生自 JavaScript,但它是一种独立于语言的数据格式。许多编程语言都提供了解析和生成 JSON 数据的代码。

JSON 支持哪些数据类型?

JSON 支持字符串(String)、数字(Number)、布尔值(Boolean)、Null、对象(Object)和数组(Array)。

为什么要用 JSON 而不是 XML?

JSON 比 XML 更轻量、更易读,解析速度更快。它占用更少的带宽,并且与 JavaScript 原生兼容,非常适合 Web 应用程序。