飞翔飞翔
主页
  • 计算机基础

    • TCP协议
  • 数据库

    • SQL教程
  • 编程语言

    • C语言
    • Python2
    • Python3
  • 数据格式

    • JSON教程
  • 工具

    • Markdown指南
  • Git

    • GitFlow
  • Quartz

    • Quartz教程
  • Java

    • Java设计模式
  • 缓存

    • Redis教程
联系
阿里云
主页
  • 计算机基础

    • TCP协议
  • 数据库

    • SQL教程
  • 编程语言

    • C语言
    • Python2
    • Python3
  • 数据格式

    • JSON教程
  • 工具

    • Markdown指南
  • Git

    • GitFlow
  • Quartz

    • Quartz教程
  • Java

    • Java设计模式
  • 缓存

    • Redis教程
联系
阿里云
  • JSON

    • JSON 是什么
    • JSON 的六种数据类型
    • 对象(Object)
    • 数组(Array)
    • 字符串(String)
    • 数字(Number)
    • 布尔值和 Null
    • 字符编码与转义
    • JSON 语法规则
    • 综合应用示例
  • JSONPath

    • JSONPath 是什么
    • 根标识符和基本路径
    • 名称选择器
    • 索引选择器
    • 通配符选择器
    • 数组切片选择器
    • 过滤器选择器(上)
    • 过滤器选择器(下)
    • 后代段
    • 函数扩展
    • JSONPath 综合实战

JSON 是什么

本系列基于 RFC 8259 官方规范编写,面向零基础新手。


JSON 是什么?

JSON 的全称是 JavaScript Object Notation(JavaScript 对象表示法),是一种轻量级的数据交换格式。

简单来说,JSON 就是一种约定好的文本格式,让不同的程序、不同的编程语言之间能够"看懂"彼此传递的数据。

生活中的类比

想象你去餐厅点餐:

  • 你(前端网页)对服务员(服务器)说:"我要一份炒饭,加辣。"
  • 服务员把这句话记下来,传给后厨。
  • 后厨一看就懂,开始做饭。

JSON 就像是这张"点餐单"——它用一种统一的格式记录数据,让发送方和接收方都能准确理解。


JSON 的设计目标

根据 RFC 8259 规范,JSON 有 4 个核心设计目标:

目标含义好处
最小化规则简单,语法精简容易学习,容易实现
可移植不依赖特定平台Windows、Mac、Linux、手机都能用
基于文本纯文本格式人可以直接阅读,也方便调试
语言无关不是某个语言的专属Java、Python、Go、JavaScript 都能解析

一句话总结

JSON 就是"一种任何编程语言都能读写的、纯文本的、结构化的数据格式"。


JSON 能表示什么数据?

JSON 可以表示 4 种原始类型 和 2 种结构化类型:

原始类型(像一颗颗单独的豆子):

  • 字符串(String)—— "飞翔科技"
  • 数字(Number)—— 2018
  • 布尔值(Boolean)—— true 或 false
  • 空值(Null)—— null

结构化类型(像装豆子的容器):

  • 对象(Object)—— 用花括号 {} 包裹的键值对集合
  • 数组(Array)—— 用方括号 [] 包裹的有序列表

第一个 JSON 例子

下面是一个描述广州飞翔科技公司的简单 JSON:

{
  "companyName": "广州飞翔科技",
  "website": "www.feixiang.net",
  "establishedYear": 2018,
  "isActive": true,
  "ceo": null
}

逐行解析:

键值类型
companyName"广州飞翔科技"字符串
website"www.feixiang.net"字符串
establishedYear2018数字
isActivetrue布尔值
ceonull空值

注意几个重要规则:

  1. 键(key)必须用双引号包裹,如 "companyName"
  2. 键和值之间用冒号 : 分隔
  3. 每个键值对之间用逗号 , 分隔
  4. 最后一个键值对后面不能加逗号
  5. 整个对象用花括号 {} 包裹

JSON 与 JavaScript 的关系

JSON 的语法借鉴自 JavaScript,但 JSON 不等于 JavaScript。

对比项JSONJavaScript
键名必须用双引号可以不加引号
字符串必须用双引号可以用单引号
末尾逗号不允许允许
注释不支持支持 // 和 /* */
函数不支持支持

提示

⚠️ 重要:JSON 只是一种数据格式,它不包含任何可执行的代码,因此比直接执行 JavaScript 更安全。


JSON 用在什么地方?

JSON 几乎无处不在:

  • 网页与服务器通信:前端页面从后端 API 获取数据
  • 配置文件:很多程序用 .json 文件保存设置
  • 数据库:如 MongoDB 直接存储 JSON 格式的文档
  • 日志记录:结构化日志常用 JSON 格式
  • 消息队列:系统之间传递消息的标准格式

实际场景示例

假设飞翔科技的官网要显示员工列表,服务器返回的数据就是 JSON:

{
  "department": "技术部",
  "members": [
    {"name": "航仔", "position": "后端开发"},
    {"name": "翼王", "position": "架构师"},
    {"name": "空少", "position": "前端开发"}
  ]
}

前端网页拿到这段 JSON,就能解析出技术部有哪些人,然后展示在页面上。


本系列学习路线

接下来的文档,我们将逐个学习 JSON 的每一种数据类型和语法规则:

  1. ✅ JSON 是什么(本文)
  2. JSON 的六种数据类型总览
  3. 对象(Object)—— 花括号里的世界
  4. 数组(Array)—— 方括号里的列表
  5. 字符串(String)—— 双引号里的文字
  6. 数字(Number)—— 各种数值写法
  7. 布尔值和 Null —— 真、假、空
  8. 字符编码与转义 —— 中文和特殊符号
  9. JSON 语法规则 —— 常见错误排查
  10. 综合应用示例 —— 用飞翔科技数据实战

提示

📌 记住一句话:JSON 是不同系统之间交换数据的"通用语言",它简单、轻量、人人可读。

下一页
JSON 的六种数据类型