如何将游戏Dual Universe的嵌套JSON数据转换为SQLite兼容的CSV格式
嵌套JSON转SQLite可行解决方案
以下方案均无需依赖在线转换工具,可完全规避嵌套结构拉平导致的表头混乱问题:
方案1:使用SQLite内置JSON扩展直接导入(推荐新手优先尝试)
SQLite 3.38.0及以上版本默认开启JSON1扩展,无需额外安装组件,可直接读取JSON文件并导入,步骤如下:
- 首先根据你用到的JSON字段结构创建对应存储表,嵌套层级的内容可以选择拆分为关联表,或是直接存为
JSON/TEXT类型,后续用SQLite内置JSON函数查询即可,建表示例:
-- 打开你的SQLite数据库文件 -- 建物品信息表示例,可根据实际需求调整字段 CREATE TABLE IF NOT EXISTS du_game_items ( id INTEGER PRIMARY KEY AUTOINCREMENT, item_name TEXT NOT NULL, tier INTEGER, base_mass REAL, base_volume REAL, recipe_detail JSON -- 嵌套的配方数据直接存为JSON格式 );
- 执行导入命令,直接从本地JSON文件提取字段写入表中:
INSERT INTO du_game_items (item_name, tier, base_mass, base_volume, recipe_detail) SELECT json_extract(value, '$.name'), json_extract(value, '$.tier'), json_extract(value, '$.mass'), json_extract(value, '$.volume'), json_extract(value, '$.recipe') FROM json_each(readfile('你本地存储的对应JSON文件的完整路径.json'));
该方案完全贴合你现有SQLite存储方案,无需转换中间格式,不会出现字段混乱问题。
方案2:可视化工具无代码导入
如果不想写SQL,可使用桌面端SQLite可视化管理工具,自带JSON导入功能:
- 打开工具后加载你现有的SQLite数据库文件
- 选择「导入」-「从JSON导入」,选择你本地的JSON文件
- 工具会自动识别JSON嵌套结构,你可以手动选择字段映射规则,支持将嵌套层拆分为关联表或是直接存储为JSON字段,全程可视化操作,无需写代码。
方案3:Java代码批量导入(适合后续定期更新数据)
你正在学习Java,可以用少量代码实现批量转换,逻辑非常简单:
- 用JSON解析库读取本地JSON文件内容
- 按你的需求解析对应字段,通过JDBC连接到SQLite数据库批量插入即可
- 全程字段映射完全可控,不会出现在线工具的结构混乱问题。
注意事项
不要使用在线转换工具处理深度嵌套的JSON文件,这类工具默认会将所有层级的字段拉平为一级表头,自然会出现只有数行却有上百个混乱列的问题,本地工具的可控性远高于在线工具。
内容的提问来源于stack exchange,提问作者war4peace
相关产品推荐
相关产品推荐

