經常遇到數據嵌套和數據處理,舉個例子:
json = [
{"name":zhangsan,"id":111,"sex":1,"time":2020/12/15,},
{"name":李四,"id":222,"sex":0,"time":1900/1/1,},
{"name":王五,"id":333,"sex":1,"time":1900/1/1,},
],
收到以上這個數據格式,然後想判斷sex=0就顯示爲女,sex=1就顯示爲男;不管白貓黑貓,能構建處理就是好貓
就是重寫拆分構建:
//定義新容器
var newJson=[];
ver newSex;
//循環替換對象
for(var i=0;i<json.length;i++){ //判斷原json裏面的長度,進行循環修改
//這就判斷替換值咯
if(json[i].sex == 0){
newSex= "女"
}else{
newSex= "男"
}
newJson.push(
{"name":json[i].name,"id":json[i].id,"sex":newSex,"time":json[i].time,}
);
}
適用於js和VUE
應該還有更簡單的方法,比如spit()等函數,直接就可以,不用寫這麼多行代碼。上面這種方法可以構建樹或者其他更簡單
json = [
{"name":張三,"id":111,"sex":1,"time":2020/12/15,
"childInfo":{
"name":張三人,"id":111,"sex":1,"time":2020/12/15,"childInfo":null
}
},
{"name":李四,"id":222,"sex":0,"time":1900/1/1,"childInfo":null
"childInfo":{
"name":張三啊,"id":111,"sex":1,"time":2020/12/15,"childInfo":null
}
},
{"name":王五,"id":333,"sex":1,"time":1900/1/1,"childInfo":null},
],
類似這種嵌套,然後你想變成這種格式:
JSON = [
{"name":張三,"id":333,"sex":1,"time":1900/1/1,"childInfo":null},
{"name":張三人,"id":333,"sex":1,"time":1900/1/1,"childInfo":null},
{"name":李四,"id":333,"sex":1,"time":1900/1/1,"childInfo":null},
{"name":張三啊,"id":333,"sex":1,"time":1900/1/1,"childInfo":null},
{"name":王五,"id":333,"sex":1,"time":1900/1/1,"childInfo":null},
],
那就做個遞歸循環屈解決,每個都拆分,VUE的大概寫法,JS也是如此類型。這就是構造新的結構(雖然辦法傻了點)
getjson(e){//tree置換【{},{}】的JSON方法
value;//數據來源
var NewJSON = [];
var i ;
e.map((cuttentDate ) => {
this.NewJSON.push( {"name":value.name,"id":value.id,"sex":value.sex,"time":value.,"childInfo":value.childInfo},);
cuttentDate.childInfo!=null && cuttentDate.childInfo.length >0 ? this.getjson(cuttentDate.childInfo,cuttentDate.id) : "";
})
},