JSON文件轻松上手:创建与使用全攻略
在数据交换和存储的世界里,JSON(JavaScript Object Notation)以其轻量、易读、易解析的特性,已成为开发者必备的“通用语言”,无论是前后端数据交互、配置文件管理,还是小型数据存储,JSON文件都发挥着重要作用,本文将从零开始,带你了解JSON文件如何创建,以及在不同场景下如何高效使用它。
初识JSON:什么是JSON文件?
JSON文件(扩展名为.json)是一种基于文本的数据存储格式,它采用“键值对”(Key-Value Pair)的结构来组织数据,类似于JavaScript中的对象,其核心设计目标是“人类可读,机器易解析”,因此广泛应用于Web开发、API数据传输、配置文件等场景。
JSON的基本语法规则
在创建JSON文件前,需要先其语法规范,这是确保文件有效性的基础:
-
数据结构:支持两种核心结构——
- 对象(Object):用花括号包裹,无序的键值对集合,键(Key)必须是字符串(需用双引号包围),值(Value)可以是多种数据类型。
示例:{"name": "张三", "age": 25} - 数组(Array):用方括号
[]包裹,有序的值列表,值可以是任意JSON支持的数据类型。
示例:["apple", "banana", 123]
- 对象(Object):用花括号包裹,无序的键值对集合,键(Key)必须是字符串(需用双引号包围),值(Value)可以是多种数据类型。
-
数据类型:支持以下6种基本数据类型:
- 字符串(String):用双引号包围,如
"hello"。 - 数字(Number):整数或浮点数,如
18、14。 - 布尔值(Boolean):
true或false(全小写)。 - 空值(Null):
null(表示空值)。 - 对象(Object):如上述
{"key": "value"}。 - 数组(Array):如上述
["item1", "item2"]。
- 字符串(String):用双引号包围,如
-
格式规范:
- 键值对之间用英文逗号分隔(最后一个键值对后无需逗号)。
- 数据层级用缩进(通常为2或4个空格)提升可读性,但缩进不影响解析(JSON是格式无关的)。
创建JSON文件:从零到一的实操指南
创建JSON文件有两种主流方式:手动创建(适合小型、静态数据)和代码动态生成(适合大型、动态数据),下面分别介绍具体步骤。
手动创建JSON文件(适合初学者)
手动创建JSON文件是最直接的方式,只需通过文本编辑器编写符合JSON语法的文本,并保存为.json扩展名即可,以下是详细步骤:
准备文本编辑器
可以使用任何文本编辑器,推荐:
- 基础工具:Windows记事本、macOS文本编辑。
- 专业工具:VS Code、Sublime Text(支持语法高亮,便于检查错误)。
编写JSON内容
以“存储用户信息”为例,编写如下JSON数据:
{
"users": [
{
"id": 1,
"name": "李华",
"age": 20,
"isStudent": true,
"courses": ["数学", "英语", "编程"],
"contact": {
"email": "lihua@example.com",
"phone": "13800138000"
}
},
{
"id": 2,
"name": "王芳",
"age": 22,
"isStudent": false,
"courses": [],
"contact": {
"email": "wangfang@example.com",
"phone": null
}
}
],
"systemInfo": {
"version": "1.0.0",
"author": "数据管理团队",
"createdDate": "2023-10-01"
}
}
保存为JSON文件
- 在编辑器中点击“文件”→“另存为”,选择保存路径。
- 文件名:自定义文件名,扩展名必须为
.json(如user_data.json)。 - 编码:保存时选择“UTF-8”编码(避免中文乱码)。
验证JSON文件有效性
手动编写时容易出现语法错误(如逗号缺失、引号不匹配),可通过在线工具快速验证:
- 访问 JSON在线验证工具,将文件内容粘贴到输入框,点击“Validate”,若显示“Valid JSON”则说明格式正确。
代码动态生成JSON文件(适合开发者场景)
当数据量较大或需要根据程序逻辑动态生成JSON时,可通过代码实现,以下是Python和JavaScript的示例:
示例1:使用Python生成JSON文件
Python内置json模块,可将Python对象转换为JSON字符串并写入文件。
import json
# 定义Python字典(对应JSON对象)
data = {
"users": [
{
"id": 1,
"name": "李华",
"age": 20,
"isStudent": True,
"courses": ["数学", "英语", "编程"]
}
],
"systemInfo": {
"version": "1.0.0",
"author": "Python脚本"
}
}
# 将Python对象转换为JSON字符串(ensure_ascii=False支持中文)
json_str = json.dumps(data, ensure_ascii=False, indent=2)
# 写入JSON文件(模式"w"表示写入,encoding="utf-8"避免乱码)
with open("user_data_python.json", "w", encoding="utf-8") as f:
f.write(json_str)
print("JSON文件生成成功!")
运行后,会在当前目录生成user_data_python.json与方法一中的示例一致。
示例2:使用JavaScript(Node.js)生成JSON文件
Node.js中可通过JSON对象实现JSON文件的生成和写入。
// 定义JavaScript对象(对应JSON对象)
const data = {
users: [
{
id: 1,
name: "李华",
age: 20,
isStudent: true,
courses: ["数学", "英语", "编程"]
}
],
systemInfo: {
version: "1.0.0",
author: "Node.js脚本"
}
};
// 将JavaScript对象转换为JSON字符串(null, 2表示格式化缩进)
const jsonStr = JSON.stringify(data, null, 2);
// 引入fs模块(文件系统模块)
const fs = require('fs');
// 写入JSON文件('utf8'编码)
fs.writeFileSync('user_data_js.json', jsonStr, 'utf8');
console.log("JSON文件生成成功!");
运行后,会生成user_data_js.json与Python生成的文件一致。
使用JSON文件:读取、解析与数据操作
创建JSON文件后,核心在于如何“使用”它——即读取文件内容、解析为程序可操作的数据结构,并进行增删改查等操作,下面以Python和JavaScript为例,介绍常见使用场景。
场景1:读取并解析JSON文件(将JSON转为程序对象)
示例1:Python读取JSON文件
使用json模块的load()方法(从文件流读取)或loads()方法(从字符串读取):
import json
# 打开JSON文件并解析为Python字典
with open("user_data_python.json", "r", encoding="utf-8") as f:
data = json.load(f) # json.load()直接从文件流解析
# 访问数据(Python中JSON对象转为字典,JSON数组转为列表)
print("用户1姓名:", data["users"][0]["name"])
print("系统版本:", data["systemInfo"]["version"])
输出:
用户1姓名: 李华
系统版本: 1.0.0
示例2:JavaScript(Node.js)读取JSON文件
Node.js中需通过fs模块读取文件内容,再用JSON.parse()解析:
const fs = require('fs');
// 同步读取文件内容(适合小文件)
const jsonStr = fs.readFileSync('user_data_js.json', 'utf8');
// 解析为JavaScript对象
const data = JSON.parse(jsonStr);
// 访问数据
console.log("用户1姓名:", data.users[0].name);
console.log("系统版本:", data.systemInfo.version);
输出:
用户1姓名: 李华
系统版本: 1.0.0
示例3:前端网页中读取JSON文件
在前端开发中,可通过fetch API异步加载本地或远程JSON文件:
<!DOCTYPE html> <html> <head>JSON读取示例</



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