Node.js 如何动态构造指定结构的JSON对象并写入.json文件
JS动态构造目标JSON结构实现指南
JS中创建普通对象无需强制使用new Object(),直接用对象字面量语法构造结构更直观高效,以下是对应操作示例:
基础结构构造
直接按照你需要的JSON结构声明对象即可:
const targetObj = { prerequisite: [ { url1: "", step1: {}, step2: {} } ], PF: [{}, {}] };
运行时动态修改/填充字段示例
你可以在任意运行阶段根据需求修改对象的属性、新增内容:
- 为
prerequisite数组第一个元素的url1赋值:
targetObj.prerequisite[0].url1 = "https://你的业务地址.com"
- 为
step1新增子属性:
targetObj.prerequisite[0].step1.operate = "执行初始化命令" targetObj.prerequisite[0].step1.cmd = "npm install"
- 为
PF数组追加新元素:
const newPfItem = { type: "功能模块", enable: true } targetObj.PF.push(newPfItem)
写入JSON文件完整示例(Node.js环境)
结合你提到的FS模块,完整的写入逻辑参考如下:
const fs = require('fs/promises') // 1. 构造基础对象 const targetObj = { prerequisite: [ { url1: "", step1: {}, step2: {} } ], PF: [{}, {}] }; // 2. 运行时填充你的业务数据 targetObj.prerequisite[0].url1 = "https://example.com" targetObj.PF[0] = { id: 1, name: "模块A" } targetObj.PF[1] = { id: 2, name: "模块B" } // 3. 转成格式化JSON字符串,第三个参数为缩进空格数,方便阅读 const jsonStr = JSON.stringify(targetObj, null, 2) // 4. 写入文件 async function saveJson() { try { await fs.writeFile('./output.json', jsonStr, 'utf-8') console.log("文件写入完成") } catch (e) { console.error("写入出错:", e) } } saveJson()
注意事项
JSON.stringify会自动过滤对象中的函数、undefined类型的值,构造对象时不要存入这两类内容避免丢失- 如果需要同步写入,可以替换为
fs.writeFileSync('./output.json', jsonStr, 'utf-8'),无需包裹异步函数
内容的提问来源于stack exchange,提问作者Kaushik
相关产品推荐
相关产品推荐

