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

    • 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 综合实战

布尔值和 Null

布尔值(Boolean)

什么是布尔值?

布尔值只有两个:true(真) 和 false(假)。

它就像生活中的开关——只有两种状态:开或关、是或否、有或没有。

JSON 中的写法

true
false

极其重要的规则:必须全部小写!

写法是否合法原因
true✅ 合法全小写
false✅ 合法全小写
True❌ 非法首字母大写
False❌ 非法首字母大写
TRUE❌ 非法全大写
FALSE❌ 非法全大写

⚠️ 很多编程语言允许 True/False 或 TRUE/FALSE,但 JSON 只认全小写!


布尔值的实际应用

布尔值通常用来表示状态、标志、是否类的信息。

示例 1:飞翔科技员工状态

{
  "name": "航仔",
  "department": "技术部",
  "position": "后端开发",
  "isActive": true,
  "isOnVacation": false,
  "isFullTime": true,
  "hasAdminRight": false
}
键值含义
isActivetrue在职状态
isOnVacationfalse没有休假
isFullTimetrue是全职员工
hasAdminRightfalse没有管理员权限

示例 2:购物订单状态

{
  "orderId": 20251201123456,
  "isPaid": true,
  "inStock": true,
  "isShipped": false,
  "isRefunded": false,
  "needInvoice": true
}

示例 3:医疗病历

{
  "patientName": "张三",
  "hasInsurance": true,
  "hasFever": false,
  "hasAllergy": false,
  "needSurgery": false,
  "isEmergency": false
}

示例 4:租房信息

{
  "community": "飞翔中文苑",
  "hasElevator": true,
  "includesProperty": false,
  "isDepositSystem": true,
  "isFurnished": true,
  "allowsPets": false
}

Null(空值)

什么是 Null?

null 表示"什么都没有"、"不存在"、"空"、"未知"。

它就像表格里的"留空"——不是 0,不是空字符串 "",而是彻底没有值。

JSON 中的写法

null

同样必须全小写:

写法是否合法
null✅ 合法
Null❌ 非法
NULL❌ 非法
nil❌ 非法
None❌ 非法

Null 的实际应用

null 通常用来表示:

  • 某个字段暂时没有值
  • 某个字段不适用
  • 某个字段被删除
  • 某个字段未知

示例 1:员工信息中的空值

{
  "name": "航仔",
  "department": "技术部",
  "position": "后端开发",
  "middleName": null,
  "endDate": null,
  "managerId": null,
  "description": "沉稳靠谱,话不多但代码干净"
}
键值含义
middleNamenull没有中间名
endDatenull未离职,没有结束日期
managerIdnull没有直属上级
description"沉稳靠谱..."有描述内容

示例 2:商品信息

{
  "productId": 10086,
  "productName": "飞翔机械键盘",
  "discountPrice": null,
  "originalPrice": 599.00,
  "discontinuedDate": null,
  "replacementProductId": null
}
  • discountPrice 为 null:当前没有折扣
  • discontinuedDate 为 null:商品仍在售
  • replacementProductId 为 null:没有替代产品

示例 3:电影信息

{
  "movieName": "飞翔中文:前程似锦",
  "releaseYear": 2018,
  "sequelName": null,
  "boxOffice": 100000,
  "sequelReleaseYear": null
}
  • sequelName 为 null:没有续集
  • sequelReleaseYear 为 null:没有续集,自然也没有续集上映年份

空字符串 "" vs Null

很多新手会混淆 "" 和 null,它们的区别很重要:

值含义类比
""字符串存在,但内容为空一个空盒子
null这个值不存在连盒子都没有
{
  "nickname1": "",
  "nickname2": null,
  "bio1": "",
  "bio2": null
}
  • nickname1 是 "":用户设置了昵称,但昵称是空的
  • nickname2 是 null:用户根本没有设置过昵称这个功能
  • bio1 是 "":用户清空了个人简介
  • bio2 是 null:用户从未填写过个人简介

0 vs Null

值含义
0数字零,有意义的数值
null没有值
{
  "score1": 0,
  "score2": null,
  "attendance1": 0,
  "attendance2": null
}
  • score1 是 0:考试得了 0 分
  • score2 是 null:还没参加考试
  • attendance1 是 0:出勤 0 天(全缺勤)
  • attendance2 是 null:还没开始统计出勤

实战:飞翔科技员工完整状态

[
  {
    "name": "航仔",
    "department": "技术部",
    "position": "后端开发",
    "isActive": true,
    "isOnVacation": false,
    "resignDate": null,
    "manager": "翼王",
    "hasStockOption": false,
    "description": "沉稳靠谱,话不多但代码干净"
  },
  {
    "name": "星宇",
    "department": "产品部",
    "position": "产品助理",
    "isActive": true,
    "isOnVacation": false,
    "resignDate": null,
    "manager": "图妹",
    "hasStockOption": null,
    "description": null
  },
  {
    "name": "风速",
    "department": "技术部",
    "position": "算法工程师",
    "isActive": false,
    "isOnVacation": false,
    "resignDate": "2025-03-15",
    "manager": null,
    "hasStockOption": false,
    "description": "闷骚技术宅,bug修复速度全公司第一"
  }
]

分析:

  • 航仔:在职,未休假,未离职,有上级,无期权,有描述
  • 星宇:在职,未休假,未离职,有上级,期权未知(null),描述未知(null)
  • 风速:已离职(isActive: false),有离职日期,无上级(null),无期权

常见错误

错误写法问题正确写法
True首字母大写true
False首字母大写false
TRUE全大写true
Null首字母大写null
NULL全大写null
"true"加了引号,变成字符串true
"null"加了引号,变成字符串null

一句话总结

提示

布尔值只有 true 和 false,必须全小写。null 表示"什么都没有",也必须全小写。记住:"" 是空盒子,null 是连盒子都没有!

上一页
数字(Number)
下一页
字符编码与转义