【发布时间】:2019-09-04 07:56:31
【问题描述】:
我必须合并 2 个 json 文件,并且需要在其中一个文件中保留一个字符串:
"weeks": "weeks\u00a0days"
合并后的\u00a0 总是变为空格:"weeks": "weeks days"。
我希望它保持为:"weeks": "weeks\u00a0days"
一些代码:
//merge.js
const fs = require('fs');
const test1 = fs.readFileSync('./test1.json', 'utf8');
const test2 = fs.readFileSync('./test2.json', 'utf8');
const merge = (obj1, obj2) =>
JSON.stringify({ ...JSON.parse(obj1), ...JSON.parse(obj2) }, null, 4);
const saveFile = (fileName, obj1, obj2) => {
fs.writeFile(`${__dirname}/${fileName}`, merge(obj1, obj2), err => {
if (err) throw err;
console.log(`The file ${fileName} has been saved!`);
});
};
saveFile('testFinal.json', test1, test2);
test1.json
{
"link": {
"about": "About",
"version": "version"
},
"items": {
"siteId": "Site ID",
"siteName": "Site name",
"siteType": "Site type",
"weeks": "weeks\u00a0days"
}
}
test2.json
{
"features": {
"activateFeatures": "Activate features",
"confirmation": "Confirmation",
"hardware": "Hardware",
"existingHardware": "Existing hardware",
"emailLicense": "Email license",
"downloadLicense": "Select quantity"
}
}
请帮忙
【问题讨论】:
-
为什么不直接调用
const abc = require('./abc.json')而不是使用readFileSync()?它可以为您节省JSON.parse()调用以及额外解析带来的所有麻烦 -
@WilliamChong - 上面没有“额外”解析。
-
您的问题不在于
merge,而是JSON.stringify的一般缺陷,请参阅stackoverflow.com/questions/31649362/…,stackoverflow.com/questions/12271547/… -
@georg - 不要无缘无故地膨胀结果字符串并不是一个缺陷。
-
@T.J.Crowder:他们本可以为此添加一个选项,参见。蟒蛇
json.dump
标签: javascript json