JSON 格式详解 📝
📋 目录
JSON 是什么
JSON 全称 JavaScript Object Notation,是一种轻量级的数据交换格式,特点是:
- 跨语言:不管你用 Python、Java、Go 还是 PHP,都能处理
- 好读好写:纯文本,人眼直接能看懂
- 结构化:支持多层嵌套
- 有规范:是标准化的,谁实现都得按规矩来
常见误区
- ❌ 只有字典才能用 JSON 解析
- ✅ 其实不止字典,数组、字符串、数字、布尔值、null 都可以
JSON 支持的数据类型
六种原生类型
| JSON 类型 | Python 类型 | 示例 |
|---|---|---|
| Object | dict | {"name": "张三", "age": 25} |
| Array | list | [1, 2, 3, "hello"] |
| String | str | "Hello World" |
| Number | int/float | 123, 123.45 |
| Boolean | bool | true, false |
| null | None | null |
常见结构示例
对象:
{
"name": "王者荣耀",
"version": "3.71.1.8",
"heroes_count": 118
}
数组:
["廉颇", "小乔", "赵云", "墨子", "妲己"]
对象里套数组(常见 API 响应):
{
"status": "success",
"data": [
{"id": 105, "name": "廉颇", "type": "坦克"},
{"id": 106, "name": "小乔", "type": "法师"}
]
}
数组里套对象:
[
{"ename": 105, "cname": "廉颇", "hero_type": 3},
{"ename": 106, "cname": "小乔", "hero_type": 2}
]
多层嵌套:
{
"game_info": {
"name": "王者荣耀",
"modes": ["排位赛", "匹配赛", "娱乐赛"]
},
"heroes": [
{
"basic_info": {"id": 105, "name": "廉颇"},
"skills": ["被动", "一技能", "二技能", "大招"]
}