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)。
发表评论 取消回复