利用cjso,如何实现将两个JSON文件相同的有嵌套的key下的内容由JSON1 替换JSON2 下key的内容
时间: 2024-10-24 08:12:10 浏览: 12
利用 CJSO(Concise JavaScript Object Notation)库,我们可以实现两个 JSON 文件的深度合并操作,其中 JSON1 中对应嵌套键的值会替换 JSON2 中的值。以下是一个简单的步骤示例:
1. 首先,你需要安装 `cjso` 库,如果你还没有安装,可以使用 npm 安装:
```
npm install cjso
```
2. 然后,你可以使用以下 JavaScript 代码来读取并合并两个 JSON 文件:
```javascript
const fs = require('fs');
const cjso = require('cjso');
// 读取 JSON 文件
async function readJsonFile(file) {
return await new Promise((resolve, reject) => {
fs.readFile(file, 'utf8', (err, data) => {
if (err) reject(err);
else resolve(JSON.parse(data));
});
});
}
// 合并两个 JSON 对象
function mergeJson(json1, json2) {
return cjso.merge(json1, json2);
}
(async () => {
try {
const json1Data = await readJsonFile('file1.json');
const json2Data = await readJsonFile('file2.json');
// 使用 cjso.merge 进行深度合并
const mergedObject = mergeJson(json1Data, json2Data);
// 将合并后的结果保存到新的 JSON 文件中
fs.writeFile('mergedFile.json', JSON.stringify(mergedObject), (err) => {
if (err) console.error('Error writing to file:', err);
else console.log('Merged JSON saved to mergedFile.json');
});
} catch (error) {
console.error('An error occurred:', error);
}
})();
```
在这个例子中,我们首先读取 `file1.json` 和 `file2.json`,然后使用 `mergeJson` 函数将它们合并,最后将结果写入到 `mergedFile.json`。
阅读全文