如何轻松写一个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文件的“三要三不要”
| 要做 |




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