如何轻松写一个JSON文件
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,因其结构清晰、易读易写,成为前后端数据交互、配置文件存储等场景的常用选择,本文将从JSON的基础概念出发,手把手教你如何正确编写JSON文件,包括格式规范、实操步骤及常见避坑指南。
先搞懂:JSON到底是什么?
JSON本质上是一种文本格式,用于表示结构化数据,它以“键值对”(Key-Value Pair)为核心,通过特定的符号(如大括号、方括号[]、冒号、逗号)组织数据,既易于人类阅读,也方便机器解析。
JSON的核心数据结构
JSON支持两种主要结构:
对象(Object):无序的键值集合
- 用大括号包裹
- 键(Key)必须是字符串,用双引号包围(单引号不行!)
- 值(Value)可以是多种类型(见下文)
- 键值对之间用冒号分隔
- 多个键值对之间用逗号分隔(最后一个键值对后不能加逗号)
数组(Array):有序的值集合
- 用方括号
[]包裹 - 元素(Value)可以是多种类型(同下文JSON值类型)
- 多个元素之间用逗号分隔(最后一个元素后不能加逗号)
JSON支持的值类型
JSON中的“值”可以是以下6种类型:
- 字符串:用双引号包围,如
"张三"、"hello.json" - 数字:整数或浮点数,如
25、14(不支持科学计数法,如1e3无效) - 布尔值:
true或false(全小写,首字母不能大写) - null:表示空值,固定为
null(全小写) - 对象:如
{"name": "李四", "age": 30} - 数组:如
[1, 2, "a", true]
写JSON文件的6个实操步骤
假设我们要存储一个“用户信息”数据,包含用户名、年龄、爱好、是否激活、地址(嵌套对象)和订单历史(嵌套数组),以下是编写JSON文件的完整步骤:
步骤1:明确数据结构,规划“键”和“值”
先理清数据之间的层级关系,用伪代码或思维导图梳理框架:
用户信息 {
用户名: "王五",
年龄: 28,
爱好: ["读书", "爬山", "编程"],
是否激活: true,
地址: {
省份: "北京市",
城市: "海淀区",
详细地址: "中关村大街1号"
},
订单历史: [
{订单号: "ORD001", 金额: 99.9, 日期: "2023-10-01"},
{订单号: "ORD002", 金额: 159.0, 日期: "2023-10-05"}
]
}
步骤2:用文本编辑器创建新文件
- 推荐使用轻量级文本编辑器:VS Code、Sublime Text、Notepad++(Windows自带记事本也可,但可能缺少语法高亮)
- 新建文件,保存时务必以
.json为后缀(如user_info.json),否则系统可能无法识别为JSON格式
步骤3:按JSON规范逐层编写内容
根据步骤1的框架,从最外层开始,用包裹对象,[]包裹数组,逐层填充键值对:
① 写最外层对象
{
"username": "王五",
"age": 28,
"hobbies": ["读书", "爬山", "编程"],
"isActive": true,
"address": {
"province": "北京市",
"city": "海淀区",
"detailAddress": "中关村大街1号"
},
"orderHistory": [
{
"orderNo": "ORD001",
"amount": 99.9,
"date": "2023-10-01"
},
{
"orderNo": "ORD002",
"amount": 159.0,
"date": "2023-10-05"
}
]
}
② 关键细节拆解
- 键必须用双引号:如
"username"不能写成username或'username' - 字符串值用双引号:如
"王五",数字28、布尔值true、null不加引号 - 嵌套结构对齐:通过缩进(通常用2个或4个空格)提升可读性,不影响功能(JSON本身不要求缩进,但规范缩进能避免错误)
- 逗号“,”的正确使用:每个键值对、数组元素后加逗号,但最后一个元素后不能加(如
"hobbies": ["读书", "爬山", "编程"],最后一个元素"编程"后无逗号)
步骤4:检查格式是否正确(避坑重点!)
JSON对格式要求严格,一个符号错误就可能导致解析失败,推荐用以下方式验证:
方法1:用编辑器的“格式化”功能
- VS Code:选中代码后按
Shift+Alt+F(Windows/Linux)或Shift+Option+F(Mac),或右键选择“格式化文档” - 格式化后,若代码自动对齐且无报错,说明格式基本正确
方法2:用在线JSON验证工具
步骤5:保存文件并测试
-
确认格式无误后,保存文件(如
user_info.json) -
用代码测试解析是否成功(示例为Python):
import json with open("user_info.json", "r", encoding="utf-8") as f: data = json.load(f) print(data["username"]) # 输出:王五 print(data["orderHistory"][0]["amount"]) # 输出:99.9若能正常读取数据,说明JSON文件编写成功!
步骤6:根据需求扩展或修改
后续如需增删数据,直接修改文件内容即可(如添加“邮箱”字段:"email": "wangwu@example.com"),修改后务必重新验证格式。
常见错误及避坑指南
错误1:键或字符串值用单引号
// 错误示例
{'name': '张三', 'age': 25}
正确写法:所有键和字符串值必须用双引号:
{"name": "张三", "age": 25}
错误2:最后一个键值对或数组元素后加逗号
// 错误示例
{"name": "李四", "age": 30,}
正确写法:去掉最后一个逗号:
{"name": "李四", "age": 30}
错误3:数字用引号包围(变成字符串)
// 错误示例
{"score": "95"}
正确写法:数字不加引号:
{"score": 95}
错误4:嵌套结构缩进混乱(虽不影响功能,但易出错)
// 错误示例(缩进不一致)
{
"user": "王五",
"hobbies": [
"读书",
"爬山"
]
}
正确写法:统一缩进(推荐4空格):
{
"user": "王五",
"hobbies": [
"读书",
"爬山"
]
}
错误5:使用JavaScript注释(JSON不支持注释)
// 错误示例
{
// 用户名
"name": "赵六"
}
正确写法:JSON标准不支持注释,若需注释,可在JSON文件外单独写说明文档,或用“键”存储注释(如"_comment": "用户名")。
写JSON文件的“三要三不要”
| 要做 |



还没有评论,来说两句吧...