新闻详情

新闻详情

首页 / 资讯中心 / 详情

fs-extra readJsonSync() 完全指南:同步读取 JSON 文件并解析为对象

发布时间:2026/9/25 2:29:47来源:尧图网络
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),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

react-native-skia 图像偏移过滤器 Offset 完全指南:属性、示例与底层实现 2026/9/25 3:05:43

react-native-skia 图像偏移过滤器 Offset 完全指南:属性、示例与底层实现

图形学移动开发跨平台UI组件 【免费下载链接】react-native-skia High-performance React Native Graphics using Skia 项目地址: https://gitcode.com/gh_mirrors/re/react-native-skia 点击查看 免费下载 本文围绕 react-native-skia 提供的 Offset 图像过滤器展…

阅读更多 →
新春送福进一线:一场基层工会活动的策划与复盘 2026/9/25 3:05:43

新春送福进一线:一场基层工会活动的策划与复盘

腊月下旬的北京,天亮得晚。活动室门口有人摸黑支桌子,红纸一卷一卷堆在墙角,砚台里的墨还没化开,凑近能闻到那股子墨香。常营地区总工会今年的"新春送福进一线"活动,就这么从一张桌子开始铺开了。说实话&…

阅读更多 →
easy-vibe 前端进阶教程:Figma 与 MasterGo 实战入门,从零创建网页原型 2026/9/25 3:05:37

easy-vibe 前端进阶教程:Figma 与 MasterGo 实战入门,从零创建网页原型

教程文档 【免费下载链接】easy-vibe 从 0 到 1 学会 vibe coding,项目制学习 项目地址: https://gitcode.com/datawhalechina/easy-vibe 点击查看 免费下载 本文基于 easy-vibe 教程 Stage 2(初级-中级开发)前端方向的《Figma 与…

阅读更多 →
F´ 中的规则与场景驱动测试:基于 STest 的组件单元测试框架详解 2026/9/25 3:05:37

F´ 中的规则与场景驱动测试:基于 STest 的组件单元测试框架详解

嵌入式系统编程 【免费下载链接】fprime F - A flight software and embedded systems framework 项目地址: https://gitcode.com/gh_mirrors/fpri/fprime 点击查看 免费下载 导读 STest 是 F(F Prime)飞行软件与嵌入式系统框架中内置的一个…

阅读更多 →
AI芯片架构选型指南:从GPU到TPU的实战对比 2026/9/25 3:05:37

AI芯片架构选型指南:从GPU到TPU的实战对比

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
Win10 LTSC 2019老电脑优化指南:稳定、轻量、十年支持 2026/9/25 3:05:37

Win10 LTSC 2019老电脑优化指南:稳定、轻量、十年支持

1. 为什么老电脑需要LTSC?不是“精简版”,而是“去冗余的官方原生系统”你手边那台奔腾G3258配4GB内存、机械硬盘还在吱呀作响的办公机,或者那台被塞进收银台底下、连USB3.0都没有的POS终端——它们真就该被淘汰吗?我去年帮本地一…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉