当前位置: 首页 > news >正文

WHAT - JSON 能不能当作数据库

文章目录

  • 一、适合用 JSON 作为“数据库”的场景
  • 二、技术实现方式(常见)
    • 1. 前端项目中
    • 2. Node.js 后端中
  • 三、不适合用 JSON 当数据库的情况
  • 四、与真数据库对比
  • 五、实际开发建议

答案是:可以,但要分场景。

JSON 本身只是一种数据格式,而不是数据库。不过在很多轻量场景中,JSON 文件 + 读写逻辑 可以扮演数据库的角色,尤其是在以下几类场景中非常实用👇


一、适合用 JSON 作为“数据库”的场景

场景类型示例用途说明
本地小型项目 / Demo快速做一个前端/NodeJS demo直接 import data.json,不需要搭数据库
配置驱动型项目菜单配置、权限配置、主题配置等JSON 格式天然适合描述结构化配置
静态数据管理一些固定不变的数据,例如省市区、行业类别等一次加载,多次使用
原型 / Mock 数据前后端分离项目开发初期可以直接用 JSON 充当后端返回,前端联调更方便
Serverless / Edge 计算无需部署数据库,直接读写 JSON 存储比如 Cloudflare Workers / Vercel Edge Functions

二、技术实现方式(常见)

1. 前端项目中

  • 静态导入

    import config from './data.json';
    console.log(config.users[0].name);
    
  • 动态加载

    fetch('/data/data.json').then(res => res.json()).then(data => console.log(data));
    

2. Node.js 后端中

  • 作为本地“数据库”文件读写

    import fs from 'fs';const DB_PATH = './db.json';function readDB() {const raw = fs.readFileSync(DB_PATH, 'utf-8');return JSON.parse(raw);
    }function writeDB(data) {fs.writeFileSync(DB_PATH, JSON.stringify(data, null, 2));
    }
    

适合做简单的 CRUD 接口。


三、不适合用 JSON 当数据库的情况

不适合的场景原因
❌ 高并发访问JSON 文件不是并发安全的,容易写冲突。严重会损坏文件
❌ 大规模数据存储读写性能差,缺乏索引机制
❌ 多用户协同修改文件锁和事务管理复杂
❌ 需要复杂查询 / 聚合操作只能全量读进内存,查询效率低
❌ 生产环境核心业务数据库没有备份、恢复、权限、事务保障等特性

四、与真数据库对比

特性JSON 文件真数据库(如 MySQL、Postgres、MongoDB)
安装复杂度低(只需一个文件)
并发处理
查询性能
事务支持
索引查询
适用规模小型项目 / 配置 / Mock中大型项目 / 生产环境

五、实际开发建议

  • 前期/开发阶段 → 可以用 JSON 代替数据库,快速启动。

  • ⚠️ 上线/复杂业务 → 迁移到真实数据库(如 SQLite、PostgreSQL、MongoDB)。

  • 如果你想保留文件型存储,但又希望有点数据库特性,可以用:

    • LowDB(Node.js,基于 JSON)
    • NeDB(MongoDB-like)
    • SQLite(文件数据库,比 JSON 强太多)

例如用 LowDB

import { Low } from 'lowdb'
import { JSONFile } from 'lowdb/node'const adapter = new JSONFile('db.json')
const db = new Low(adapter, { users: [] })await db.read()
db.data.users.push({ id: 1, name: 'Tom' })
await db.write()

总结一句话

JSON 可以当“轻量数据库”使用,但更适合开发期、配置数据或非高并发的业务。
如果你要做真正的业务存储,请考虑 SQLite 或其他数据库。

http://www.dtcms.com/a/478999.html

相关文章:

  • 【目录】2025年羊城工匠杯NL2SQL参赛介绍
  • 网站怎么才能上线网站后台数据库设计
  • 【开题答辩全过程】以 白马藏族文化与特产销售小程序为例,包含答辩的问题和答案
  • 石家庄做外贸的网站建设建设商城网站的难点
  • 天津网站备案在哪照相建设网站明细报价表
  • Node.js events模块所有 API 详解 + 常用 API + 使用场景
  • 便携式EL检测仪:重构光伏质检流程
  • 安庆网站建设推荐秒搜科技网站右侧虚代码
  • 研究生核心课程建设网站深圳网站建设top028
  • 网站建设伍金手指下拉2加强网站硬件建设方案
  • Pytest单元测试一例:u16采样值格式转换的错误
  • 源码网站php什么事网站建设
  • Pytest与Unittest测试框架对比
  • 旅游网站建设的方向连接交换
  • 路径平滑优化详解(二次规划): 数学建模与目标函数推导
  • 昂瑞微:射频与模拟芯片领域的国产领军者
  • 互联网医院小程序源码实操:在线问诊功能快速实现
  • 数字电源和模拟电源隔离的原理
  • 搬瓦工wordpress建站软件开发公司哪家强
  • 常见的PHP框架安全防护函数详解!
  • 《Qt应用开发》笔记p4
  • 用 Matplotlib 实现数据可视化3 个案例实战
  • PS4资源汇总:PS4游戏18T+合集1700多个游戏+固件+主题+金手指+模拟器
  • 营销型网站设计价格app软件商店
  • 网站开发的工作环境wordpress没有链接
  • Spring Web MVC入门补充1
  • 反悔贪心 系列
  • 十二、OpenCV中的边缘检测
  • 个人网站 摄影展示wordpress神箭手
  • 天津网站建设icp备微建网站