fs-extra readJsonSync() 完全指南:同步读取 JSON 文件并解析为对象
开发工具【免费下载链接】node-fs-extraNode.js: extra methods for the fs object like copy(), remove(), mkdirs()项目地址https://gitcode.com/gh_mirrors/no/node-fs-extra点击查看免费下载导读readJsonSync()是 fs-extra 提供的一个读文件 解析 JSON二合一同步方法一条调用即可将磁盘上的 JSON 文件读取出来并解析为 JavaScript 对象省去fs.readFileSync()JSON.parse()两步手写代码。本文将以 docs/readJson-sync.md 为核心结合 fs-extra 源码lib/json/与测试用例系统讲解readJsonSync()的签名、参数、throws容错选项、别名机制与底层实现让你在配置加载、数据恢复等场景中安全高效地使用它。API 签名与参数说明readJsonSync(file[, options])参数类型说明fileString要读取的 JSON 文件路径相对或绝对路径均可optionsObject可选项与jsonfile包的readFileSync()options 一致调用成功后返回解析后的对象Object / Array / 字符串等 JSON 合法值若文件不存在或 JSON 无效默认会抛出异常。方法还有一个全大写别名readJSONSync()二者完全等价可在任意场景互换使用。基本用法一步完成读取与解析最常见的场景是读取项目的package.jsonconst fs require(fs-extra) const packageObj fs.readJsonSync(./package.json) console.log(packageObj.version) // 2.0.0与原生写法对比readJsonSync()将两步合并为一步// 原生 Node.js 写法两步 const fs require(fs) const data fs.readFileSync(./package.json, utf8) const packageObj JSON.parse(data) // fs-extra 写法一步 const packageObj require(fs-extra).readJsonSync(./package.json)注意同步 API 会阻塞事件循环适合脚本初始化、启动配置加载、工具函数等场景在高并发服务中应优先使用异步版readJson()。throws 选项容忍无效 JSON 而不抛异常readJsonSync()支持传入throws: false当 JSON 内容非法时不抛错而是返回nullconst fs require(fs-extra) const file /tmp/some-invalid.json const data {not valid JSON fs.writeFileSync(file, data) const obj fs.readJsonSync(file, { throws: false }) console.log(obj) // null这一选项的实战价值在于容错读取当配置文件可能被用户手工编辑坏、或存在格式不完整的占位文件时可以避免程序因解析失败而崩溃转而走降级逻辑const config fs.readJsonSync(./config.json, { throws: false }) if (config null) { // 使用默认配置兜底 useDefaults() } else { applyConfig(config) }与之相对默认行为throws: true在 JSON 无效时会抛出解析错误这一点由测试用例直接验证在 lib/json/tests/read.test.js 中向文件写入%asdfasdff444这类非法内容后调用readJSON断言结果必须携带err且无解析结果it(should error if it cant parse the json, done { const file path.join(TEST_DIR, file2.json) fs.writeFileSync(file, %asdfasdff444) fse.readJSON(file, (err, obj) { assert(err) assert(!obj) done() }) })options 的更多细节与 jsonfile 包保持一致文档明确指出options与jsonfile包的readFileSync()options 相同。fs-extra 的 JSON 能力正是建立在jsonfile依赖之上见 package.json 中jsonfile: ^6.0.1因此除throws外还可使用encoding默认utf8等读取选项// 显式指定编码读取 const obj fs.readJsonSync(./data.json, { encoding: utf8, throws: false })需要提醒的是所有选项均非必填最小调用只需传文件路径throws: false是文档与测试双重覆盖的关键选项其余选项的具体行为以所依赖的jsonfile包实现为准。别名机制readJSONSync() 从哪来在 fs-extra 中readJSONSync全大写与readJsonSync驼峰指向同一实现。别名在 lib/json/index.js 中显式注册jsonFile.readJSON jsonFile.readJson jsonFile.readJSONSync jsonFile.readJsonSync两种写法在 CommonJS 与 ESM 环境中均可使用见 lib/esm.mjs// CommonJS const fs require(fs-extra) fs.readJSONSync(./package.json) // ESM import { readJSONSync } from fs-extra/esm底层实现readJsonSync 如何工作readJsonSync()的实现路径非常清晰调用链如下导出入口lib/index.js 将lib/json模块合并进fs-extra顶层命名空间模块封装lib/json/jsonfile.js 将readJsonSync直接映射为jsonfile包的readFileSyncreadJsonSync: jsonFile.readFileSync底层依赖实际文件读取与 JSON 解析逻辑来自jsonfile包version ^6.0.1fs-extra 在此之上仅做命名与导出的包装并统一挂载到fs-extra对象上让你无需单独引入 jsonfile。也就是说readJsonSync()的可靠性与jsonfile的成熟实现一脉相承而 fs-extra 的价值在于把这些 JSON 工具与copy()、remove()、mkdirs()等扩展方法整合进同一个 API 表面保持调用方式的一致性。常见使用场景小结配置加载启动时同步读取配置文件配合throws: false处理缺失或损坏配置本地数据读取读取离线数据文件如白名单、字典解析结果直接可用脚本工具命令行工具中快速读取 JSON 输入与写入方法配套与writeJsonSync、outputJsonSync配合构成完整的 JSON 读写闭环。总结readJsonSync(file[, options])是 fs-extra 面向 JSON 读取的同步便捷方法核心要点有三一步到位读取文件并解析 JSON返回对象且提供readJSONSync全大写别名容错可选throws: false让无效 JSON 返回null而非抛异常适合健壮的配置加载实现透明底层由jsonfile提供fs-extra 负责统一命名与导出使用前只需npm install fs-extra即可。需要异步读取时可进一步阅读readJson()支持 callback 与 Promise 两种风格两者参数与选项完全对齐。赞分享开发工具【免费下载链接】node-fs-extraNode.js: extra methods for the fs object like copy(), remove(), mkdirs()项目地址https://gitcode.com/gh_mirrors/no/node-fs-extra点击查看免费下载相关推荐fs-extra writeJson 全面指南将对象序列化为 JSON 文件含 options、同步版与底层实现解析fs extra writeJson 全面指南将对象序列化为 JSON 文件含 options、同步版与底层实现解析 导读 writeJson 是 fs开发工具fs-extra moveSync 完全指南跨设备移动文件与目录的同步 API 详解fs extra moveSync 完全指南跨设备移动文件与目录的同步 API 详解 moveSync src, dest , options 是 fs ex开发工具5分钟掌握如何使用SP 500历史成分股数据库进行量化分析5分钟掌握如何使用SP 500历史成分股数据库进行量化分析 SP 500数据项目 为您提供了一个完整的美国标普500指数历史成分股数据库覆盖自1996年数据集数据分析金融科技创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考