JSON 格式
前言
这可太常见了,而且十分简单,你确定不看看?🤨
简介
JSON(JavaScript Object Notation)是一种轻量级的文本数据交换格式,JSON 具有自我描述性,易于理解和解析。在现代 Web 开发中,它已经成为数据交换的事实标准。广泛应用于前后端数据传输、配置文件、API 接口等领域,后缀为 json 。
特点
- 轻量级:JSON 数据格式简洁,体积小,传输速度快。
- 易读性:JSON 数据具有良好的可读性,结构清晰。
- 易解析:JSON 数据可以被多种编程语言解析和生成。
- 语言无关性:独立于任何编程语言,支持多种语言的解析和生成。
基础语法
- 键值对:键和值通过冒号分隔,键必须是字符串,值可以是 json 类型。
- 逗号分隔:多个键/值对之间用逗号分隔,禁止尾随逗号。
- 大括号对象/中括号数组:对象用大括号
{}包裹;数组用中括号[]包裹。 - 单引号非法:键与字符串必须用双引号包裹。
- 注释与编码:标准 JSON 不支持注释,且确保UTF-8编码。
JSON5
JSON5 是 JSON 的超集,增加了许多新特性,使其比 JSON 更加灵活和易读:
- 注释:支持单行和多行注释。
- 尾随逗号:对象和数组的最后一个键值对或元素后面可以有逗号。
- 字符串:字符串可以用单引号或反引号,可以包含转义字符,并且可以跨多行。
- 数字:支持十六进制、以点开头或结尾的数字、正无穷、负无穷和 NaN,以及以加号开头的数字。
- 空格:允许多余的空格。
数据类型
- 数字:整数或浮点数。
- 字符串:在双引号中。
- 布尔值:
true或false。 - 数组:在中括号中,可以包含任意类型的值。
- 对象:在大括号中,可以包含多个键/值对。
- null:表示空值。
json
{
"user": {
"id": 1001,
"name": "林薇",
"tags": ["开发者", "设计师"],
"active": true,
"profile": null,
"contact": {
"email": "linwei@example.com",
"phones": ["138****5678", "010-****9900"]
}
}
}JSON vs. XML
| 特性 | JSON | XML |
|---|---|---|
| 体积 | 小 | 大(标签冗余) |
| 解析 | 简单(直接转对象) | 复杂(需 DOM/SAX) |
| 可读性 | 高 | 中等 |
| 数据类型 | 原生支持(数字、布尔、数组) | 全部为字符串 |
| 浏览器支持 | 原生 | 需解析器 |
写在最后
JSON 虽诞生于 JavaScript,但已完全独立。且被绝大多数编程语言支持,也成为现代web开发中默认传输格式。
是不是灰常简单😁
