JSON 的核心特性
-
数据结构:
-
支持两种基本结构:
-
对象(Object):键值对集合,用
{}
包裹,例如{ "name": "Alice", "age": 30 }
。 -
数组(Array):有序值列表,用
[]
包裹,例如["apple", "banana", "orange"]
。
-
-
支持嵌套(对象内包含数组,数组内包含对象)。
-
-
数据类型:
-
字符串(String):
"Hello"
-
数字(Number):整数或浮点数(如
42
,3.14
) -
布尔值(Boolean):
true
或false
-
空值(Null):
null
-
对象(Object)和数组(Array)。
-
-
语法规则:
-
键名必须用双引号包裹(
"key"
)。 -
值可以是任意数据类型。
-
键值对用逗号分隔,最后一个键值对后不能有逗号。
-
JSON 示例
{ "name": "张三", "age": 28, "isStudent": false, "hobbies": ["读书", "编程", "跑步"], "address": { "city": "北京", "postcode": "100000" } }
JSON 的主要用途
-
Web API 数据交换:
-
前后端通信(如通过 HTTP 请求发送 JSON 数据)。
-
例如,RESTful API 通常以 JSON 格式返回数据:
{ "status": 200, "data": { /* ... */ } }
-
-
配置文件:
-
许多工具(如 VS Code、ESLint)使用
.json
文件存储配置。 -
例如
package.json
定义 Node.js 项目的依赖和脚本。
-
-
NoSQL 数据库:
-
MongoDB、Firebase 等数据库直接存储 JSON 格式的数据。
-
JSON 与其他格式对比
特性 | JSON | XML | YAML |
---|---|---|---|
可读性 | 高(简洁) | 中(标签冗余) | 高(缩进清晰) |
体积 | 小 | 大 | 中 |
解析速度 | 快 | 慢 | 中 |
注释支持 | 否 | 是 | 是 |
JSON 工具
-
序列化与反序列化:
-
JavaScript:
JSON.parse()
(字符串 → 对象),JSON.stringify()
(对象 → 字符串)。 -
Python:
json.loads()
和json.dumps()
。 -
Java:Jackson、Gson 等库。
-
-
格式化和验证:
-
在线工具:JSONLint、JSON Formatter。
-
IDE 插件:VS Code 自动高亮和格式化。
-
注意事项
-
严格语法:键必须用双引号,末尾不能有多余逗号。
-
安全性:解析不可信 JSON 时需防范注入攻击(如 JavaScript 的
eval()
不安全)。 -
性能:处理超大 JSON 文件时需使用流式解析(如 Python 的
ijson
)。
发表评论 取消回复