数据库如何导入JSON文件?JSON文件怎么打开?一篇搞定!
数据库如何导入JSON文件?分场景详细教程
JSON(JavaScript Object Notation)以其轻量、易读、灵活的特性,成为数据交换的主流格式之一,将JSON文件导入数据库,是数据迁移、备份或分析时的常见需求,不同数据库(如MySQL、PostgreSQL、MongoDB等)导入JSON的方式有所不同,下面分主流数据库场景详细说明。
(一)关系型数据库:MySQL/PostgreSQL/SQL Server
关系型数据库(如MySQL、PostgreSQL)通常需要先将JSON文件解析为结构化数据(或直接存储JSON字段),再通过工具或命令导入,核心思路是:读取JSON文件 → 转换为数据库可识别的格式(如INSERT语句、临时表)→ 执行导入。
MySQL:支持JSON字段,可直接导入或解析
MySQL 5.7+原生支持JSON数据类型,可通过以下方式导入:
方法1:使用LOAD DATA INFILE(适合结构化JSON)
如果JSON文件是每行一个JSON对象(如[{"id":1,"name":"Alice"},{"id":2,"name":"Bob"}],每行{"id":1,"name":"Alice"}),可直接导入到JSON字段:
-- 1. 创建带JSON字段的表
CREATE TABLE users (
id INT PRIMARY KEY,
info JSON -- 存储JSON数据的字段
);
-- 2. 导入JSON文件(假设文件路径为'/tmp/users.json',每行一个JSON对象)
LOAD DATA INFILE '/tmp/users.json'
INTO TABLE users
FIELDS TERMINATED BY '\n' -- 每行一个JSON对象,以换行符分隔
(id, info); -- 若JSON文件包含id字段,可映射到列;否则直接导入到info字段
方法2:使用mysql命令行工具(适合复杂JSON)
通过mysql命令的--init-command或临时表导入:
# 1. 将JSON文件内容转换为INSERT语句(需借助脚本,如Python)
# 使用Python将users.json转换为INSERT语句
python3 -c "
import json
with open('users.json', 'r') as f:
data = json.load(f)
for item in data:
print(f\"INSERT INTO users (id, info) VALUES ({item['id']}, '{json.dumps(item)}');\")
" > insert_statements.sql
# 2. 执行INSERT语句导入
mysql -u root -p database_name < insert_statements.sql
方法3:使用MySQL Shell(8.0+)的util.importTable
# MySQL Shell中执行
\sql
USE database_name;
util.importTable('/tmp/users.json', table_name, columns=['id', 'info'], format='JSON');
PostgreSQL:通过jsonb字段+COPY命令
PostgreSQL推荐使用jsonb类型(二进制JSON,支持索引查询),导入方式如下:
方法1:使用COPY命令(每行一个JSON对象)
-- 1. 创建表(jsonb类型支持JSON数据)
CREATE TABLE users (
id INT,
info JSONB
);
-- 2. 准备JSON文件(每行一个JSON对象,如:{"id":1,"name":"Alice"})
-- 3. 执行COPY导入(需指定文件路径和字段分隔符)
COPY users (id, info)
FROM '/tmp/users.json'
WITH (FORMAT JSON, HEADER); -- 若文件有表头,加HEADER;否则不加
方法2:使用psql命令行工具
# 将JSON文件通过管道导入(需先转换为INSERT语句) cat users.json | jq -c '.[]' | psql -c "COPY users (info) FROM STDIN WITH (FORMAT JSON);"
SQL Server:通过OPENJSON函数+批量插入
SQL Server 2016+支持OPENJSON函数解析JSON,需先将JSON文件内容读取到变量或临时表,再批量插入:
步骤1:创建表(带NVARCHAR(MAX)存储JSON)
CREATE TABLE users (
id INT,
info NVARCHAR(MAX) -- 存储JSON字符串
);
步骤2:使用BULK INSERT或OPENROWSET读取文件
-- 使用BULK INSERT(需文件位于SQL Server服务器本地)
BULK INSERT users
FROM 'C:\tmp\users.json'
WITH (
FORMAT = 'JSON', -- 指定JSON格式
ROWTERMINATOR = '0x0A' -- 换行符
);
-- 或使用OPENROWSET(需启用Ad Hoc Distributed Queries)
INSERT INTO users (info)
SELECT value
FROM OPENROWSET(BULK 'C:\tmp\users.json', SINGLE_CLOB) AS j
CROSS APPLY OPENJSON(j.BulkColumn) AS json_data;
(二)非关系型数据库:MongoDB——原生支持JSON导入
MongoDB基于BSON(二进制JSON),可直接导入JSON文件,无需复杂转换,是“原生友好型”数据库。
方法1:使用mongoimport命令行工具
mongoimport是MongoDB自带的导入工具,支持JSON、CSV等格式,语法简单:
基本语法
mongoimport --collection <集合名> --file <JSON文件路径> --jsonArray
参数说明
--collection:目标集合(相当于MySQL的表);--file:JSON文件路径(需绝对路径);--jsonArray:若JSON文件是数组格式(如[{"id":1}, {"id":2}]),必须加此参数;--db:指定数据库(默认为test);--drop:导入前清空目标集合(避免重复)。
示例
# 导入users.json到数据库mydb的users集合(文件是数组格式) mongoimport --db mydb --collection users --file /tmp/users.json --jsonArray --drop
方法2:使用MongoDB Compass(图形化工具)
MongoDB Compass是官方GUI工具,支持可视化导入JSON:
- 打开Compass,连接MongoDB实例;
- 选择目标数据库和集合;
- 点击“Import Data”;
- 选择JSON文件,勾选“JSON Array”(若为数组格式),点击“Import”即可。
(三)其他数据库:Redis(JSON模块)
Redis 4.0+可通过JSON模块导入JSON文件,适合缓存场景。
方法:使用redis-cli+JSON.SET
# 1. 将JSON文件内容读入变量(Linux/macOS)
JSON_DATA=$(cat /tmp/users.json)
# 2. 使用JSON.SET导入到Redis键(假设键名为:users:1)
redis-cli --raw "JSON.SET :users:1 $ '$JSON_DATA'"
# 若JSON是数组,可循环导入
cat users.json | jq -c '.[]' | while read item; do
redis-cli --raw "JSON.SET :users:$(echo $item | jq -r '.id') $ '$item'"
done
JSON文件怎么打开?3种常用方式
JSON文件本质是文本文件,可通过文本编辑器、专用工具或代码查看,具体取决于使用场景(如快速查看、编辑、调试)。
(一)文本编辑器:适合直接查看/编辑
任何支持文本格式的编辑器都能打开JSON文件,适合简单查看或修改:
系统自带编辑器
- Windows:记事本(Notepad)、写字板;
- macOS:文本编辑(TextEdit);
- Linux:vim、nano、gedit。
示例:用记事本打开JSON文件,可直接查看内容,但无法格式化(可能显示为一行)。
高级文本编辑器(推荐)
- VS Code:免费、跨平台,支持JSON语法高亮、格式化、折叠,适合开发者;
- Sublime Text:轻量、快速,支持JSON插件;
- Notepad++:Windows平台,支持JSON语法树和格式化。
VS Code操作:
- 用VS Code打开JSON文件;
- 右键 → “格式化文档”(或快捷键
Shift+Alt+F),自动缩进美化; - 可通过“JSON”插件(如vscode-json-languageserver)校验语法错误。
(二)专用JSON工具:适合可视化/调试
若JSON文件结构复杂(如嵌套多层),或需要可视化查看,推荐专用工具:
在线JSON查看器
- JSONLint(https://jsonlint.com/):校验JSON格式是否正确,错误时会提示具体行号;
- JSON Formatter & Validator(https://json



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