原数据格式:china-area-data组件下的data.json数据。
目标数据格式:依照elementUI的Cascader 级联选择器所需要的options格式。
//citysFormat.js
const fs = require("fs");
var destArr = []; //目标对象
var orginArr = {}; //初始对象
fs.readFile("./jstest/data.json","utf-8",(err,data)=>{
if(err)
throw err;
orginArr = JSON.parse(data.toString());
formatArr(orginArr['86'],destArr); //递归转换
//转换到目标格式的数据,写入到本地文件
fs.writeFile('newData.txt', JSON.stringify(destArr), (err) => {
if (err) throw err;
console.log('The file has been saved!');
});
})
/**
* 递归拼接
* {value: 'root',
label: '一级标题',
children: [{
value:'child',
label:'二级标题',
children:[{
value:'child-child',
label:'三级标题'
}]
}
}
* @param {Object} orginJson
* @param {Object} destJson
*/
function formatArr(orginJson,destarr){
if(orginJson){
for(var value in orginJson){zhan
var destJson = {};
destJson['value']= value;
destJson['label'] = orginJson[value];
destarr.push(destJson);
if(orginArr[value]){ //下一级有值,继续递归
destJson['children'] = []; //把下一级递归的对象作为当前对象的children
formatArr(orginArr[value],destJson['children']);
}
}
}
}
展示效果: