常常遇到數據嵌套和數據處理,舉個例子:javascript
json = [java
{"name":zhangsan,"id":111,"sex":1,"time":2020/12/15,},json
{"name":李四,"id":222,"sex":0,"time":1900/1/1,},函數
{"name":王五,"id":333,"sex":1,"time":1900/1/1,},this
],code
收到以上這個數據格式,而後想判斷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和VUEip
應該還有更簡單的方法,好比spit()等函數,直接就能夠,不用寫這麼多行代碼。上面這種方法能夠構建樹或者其餘更簡單get
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) : ""; }) },