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

    • TCP/IP协议
    • Linux命令
  • 数据库

    • SQL教程
  • 编程语言

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

    • JSON教程
  • 工具

    • Markdown指南
  • Git

    • GitFlow
  • Quartz

    • Quartz教程
  • Java

    • Java设计模式
  • 缓存

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

    • TCP/IP协议
    • Linux命令
  • 数据库

    • 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 的六种数据类型

JSON 数据类型总览

根据 RFC 8259 规范,JSON 一共只有 6 种数据类型:

类型英文示例说明
字符串String"飞翔科技"双引号包裹的文本
数字Number2018、-88.8整数、小数、负数、科学计数法
布尔值Booleantrue、false只有这两个值,必须小写
空值Nullnull表示"什么都没有"
对象Object{"name":"航仔"}花括号包裹的键值对集合
数组Array["航仔","翼王"]方括号包裹的有序列表

💡 关键记忆点:JSON 的类型非常少!只有这 6 种,没有日期类型、没有函数、没有 undefined。


四种"原始类型"(Primitive Types)

原始类型就像一颗颗独立的"原子",不能再拆分。

1. 字符串(String)

字符串就是文本,必须用双引号包裹。

"广州飞翔科技"
"www.feixiang.net"
"愿你朝华相顾,愿你前程似锦。"
""

合法 vs 非法:

写法是否合法原因
"飞翔"✅ 合法双引号包裹
'飞翔'❌ 非法JSON 只能用双引号
飞翔❌ 非法没有引号

2. 数字(Number)

数字不需要引号,直接写数字即可。

18
2018
-88
3.14159
2.5e10

各种数字形式:

类型示例说明
整数2018公司成立年份
负数-10温度零下
小数36.5体温
科学计数法1.4e914亿 = 1.4 × 10⁹

⚠️ 注意:JSON 没有单独的"整数"和"浮点数"之分,统一都叫 Number。

3. 布尔值(Boolean)

布尔值只有两个:true(真) 和 false(假),必须全部小写。

true
false

实际例子:

{
  "isPaid": true,
  "hasFever": false,
  "isFullHouse": false
}
写法是否合法原因
true✅ 合法全小写
false✅ 合法全小写
True❌ 非法不能大写首字母
TRUE❌ 非法不能全大写

4. 空值(Null)

null 表示"什么都没有"、"空"、"不存在",也必须小写。

null

实际例子:

{
  "middleName": null,
  "endDate": null,
  "description": null
}

比如一个员工没有中间名,就可以用 null 表示。


两种"结构化类型"(Structured Types)

结构化类型是用来"装"其他数据的容器。

5. 对象(Object)

对象用花括号 {} 包裹,里面是键值对(key-value pairs)。

{
  "name": "航仔",
  "department": "技术部",
  "position": "后端开发",
  "age": 28
}

规则:

  • 键(key)必须是字符串,用双引号包裹
  • 键和值之间用冒号 : 分隔
  • 多个键值对之间用逗号 , 分隔
  • 最后一个键值对后面不要加逗号

6. 数组(Array)

数组用方括号 [] 包裹,里面是有序的值列表。

["航仔", "翼王", "凌叔", "空少", "风速"]

数组里的元素可以是不同类型:

[
  "飞翔科技",
  2018,
  true,
  null,
  {"employees": 12}
]

类型对比一览表

用飞翔科技的员工信息来对比各种类型:

{
  "company": "广州飞翔科技",
  "website": "www.feixiang.net",
  "established": 2018,
  "employeeCount": 12,
  "isHiring": true,
  "shutdownDate": null,
  "departments": ["技术部", "产品部", "运营部"],
  "techLead": {
    "name": "翼王",
    "position": "架构师",
    "age": 35
  }
}
键值JSON 类型
company"广州飞翔科技"字符串
website"www.feixiang.net"字符串
established2018数字
employeeCount12数字
isHiringtrue布尔值
shutdownDatenull空值
departments["技术部", "产品部", "运营部"]数组
techLead{...}对象

常见错误

错误 1:给数字加引号

❌ { "year": "2018" }    // 这是字符串,不是数字
✅ { "year": 2018 }       // 这才是数字

错误 2:键名不加引号

❌ { name: "航仔" }      // 键名必须用双引号
✅ { "name": "航仔" }    // 正确

错误 3:使用单引号

❌ { 'name': '航仔' }     // JSON 只能用双引号
✅ { "name": "航仔" }    // 正确

错误 4:末尾多余逗号

❌ { "name": "航仔", }   // 最后一个逗号多余
✅ { "name": "航仔" }    // 正确

一句话总结

提示

JSON 只有 6 种类型:字符串、数字、布尔值、null、对象、数组。记住它们的写法规则,你就掌握了 JSON 的一半!

上一页
JSON 是什么
下一页
对象(Object)