const yourArray = [
{
meta: { title: "首页" },
children: [
{
meta: { title: "数据" },
children: [
{
meta: { title: "数据A" },
children: []
}
]
}
]
},
{
meta: { title: "店铺" },
children: []
}
];
把这个数据meta.title做为key转成
{
"首页": {
"数据": {
"数据A":null
},
},
"店铺": nulll
}
方法
const fs = require('fs');
// 读取 JSON 文件
fs.readFile('routes.json', 'utf8', (err, data) => {
if (err) {
console.error('读取文件时发生错误:', err);
return;
}
try {
const jsonData = JSON.parse(data);
const titles = createJsonFromArray(jsonData);
console.log(titles)
// 创建包含标题的新 JSON 对象
const outputData = { titles };
// 将数据写入新的 JSON 文件
fs.writeFile('output-arr.json', JSON.stringify(outputData, null, 2), 'utf8', (writeErr) => {
if (writeErr) {
console.error('写入文件时发生错误:', writeErr);
} else {
console.log('标题已成功写入 output.json 文件。');
}
});
} catch (parseError) {
console.error('解析 JSON 时发生错误:', parseError);
}
});
// 递归函数来提取标题
function createJsonFromArray(arr) {
const result = {};
for (const item of arr) {
const key = item.meta.title;
if (item.children && item.children.length > 0) {
result[key] = createJsonFromArray(item.children);
} else {
result[key] = null;
}
}
return result;
}