1、對象屬性鍵名修改:
1 data: { 2 code: 0, 3 text: '數據分析', 4 plant: [], 5 }, 6 // 把data下的plant改成children 7 data: { 8 code: 0, 9 text: '數據分析', 10 children: [], 11 },
關鍵語句
1 let newData= JSON.parse(JSON.stringify(this.data).replace(/plant/g,"children"))
2、數組屬性鍵名修改:
1 plant: [{ 2 plant_code: 1, 3 plant_name: "烘干車間", 4 device:[], 5 },{ 6 plant_code: 2, 7 plant_name: "窯爐車間", 8 device: Array(2), 9 }], 10 // 數組中屬性鍵名挨個修改成所需 11 // 把plant下的plant_code改成company_id、plant_name改成company_name、device改成children 12 plant: [{ 13 company_id: 1, 14 company_name: "烘干車間", 15 children:[], 16 },{ 17 company_id: 2, 18 company_name: "窯爐車間", 19 children: Array(2), 20 }],
關鍵語句
1 this.plant = this.plant.map(item=>({ 2 company_id:item.children_code, 3 company_name:item.children_name, 4 children:item.device, 5 }))
現實需求
原始從后端獲取到的數據:
1 res:{ 2 data: { 3 company_id: 1001 4 company_name: "包頭稀土園區" 5 plant: [{ 6 plant_code: 1, 7 plant_name: "烘干車間", 8 device:[{ 9 collection_device_name: "1#電表", 10 collection_device_code: 1 11 },{ 12 collection_device_name: "2#電表", 13 collection_device_code: 2 14 },{ 15 collection_device_name: "3#電表", 16 collection_device_code: 3 17 }], 18 },{ 19 plant_code: 2, 20 plant_name: "窯爐車間", 21 device: Array(2), 22 }], 23 } 24 }
輸出格式化,所有name變成company_name,所有葉子變成children:
1 res:{ 2 data: { 3 company_id: 1001 4 company_name: "包頭稀土園區" 5 children: [{ 6 company_id: 1, 7 company_name: "烘干車間", 8 children:[{ 9 company_name: "1#電表", 10 company_id: 1 11 },{ 12 company_name: "2#電表", 13 company_id: 2 14 },{ 15 company_name: "3#電表", 16 company_id: 3 17 }], 18 },{ 19 company_id: 2, 20 company_name: "窯爐車間", 21 children: Array(2), 22 }], 23 } 24 }
關鍵語句
1 // plant改成children 2 let response = JSON.parse(JSON.stringify(res.data).replace(/plant/g,"children")) 3 // 車間中所有鍵名修改 4 if(response.children.length>0){ 5 response.children = response.children.map(item=>({ 6 company_id:item.children_code, 7 company_name:item.children_name, 8 children:item.device, 9 })) 10 for (const i in response.children) { 11 if (response.children.hasOwnProperty(i)) { 12 response.children[i].children = response.children[i].children.map(item=>({ 13 company_id:item.collection_device_code, 14 company_name:item.collection_device_name, 15 })) 16 } 17 } 18 } 19 console.log(response,'===');
此時的response已經是格式化好的了!
