亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

json遞歸修改里面層級結構(已有人解答,謝謝了)

json遞歸修改里面層級結構(已有人解答,謝謝了)

繁花不似錦 2019-05-06 21:42:45
這樣一個需求,這樣的JSON,如果當前的對象下面的type為object,則需要用一個新的對象items包裹里面的層級。例如vardataPre={"name":{"type":"string","desc":"病人姓名","testData":"張三李四","sex":{"type":"object",//這里的type為object"desc":"性別",//如果同級的type為object,需要刪除這個字段"testData":"男",//如果同級的type為object,需要刪除這個字段"city":{"type":"string","desc":"城市","testData":"杭州"},"street":{"type":"string","desc":"街道","testData":"浦口街道"}}},"order":{"type":"string","desc":"訂單","testData":"名稱"}}修改成這樣的,這個JSON對象總共有三級,可能會有很對數據,大概數據結構就是這樣vardataHandle={"name":{"type":"string","desc":"病人姓名","testData":"張三李四","sex":{"type":"object","items"{//這里的為新添加的對象"city":{"type":"string","desc":"城市","testData":"杭州"},"street":{"type":"string","desc":"街道","testData":"浦口街道"}}}},"order":{"type":"string","desc":"訂單","testData":"名稱"}}謝謝!
查看完整描述

2 回答

?
拉丁的傳說

TA貢獻1789條經驗 獲得超8個贊

functiongenerate(obj){
let_obj={};
if(obj['type']&&obj['type']==='object'){
letitems={},flag=false;
Object.entries(obj).forEach(([key,value])=>{
if(key==='type'){
_obj[key]=value
}elseif(typeof(value)==='object'){
flag=true;
items[key]=generate(value);
}
})
if(flag){
_obj['items']=items;
}
}
else{
Object.entries(obj).forEach(([key,value])=>{
if(typeof(value)!=='object'){
_obj[key]=value
}else{
_obj[key]=generate(value);
}
})
}
return_obj
}
                            
查看完整回答
反對 回復 2019-05-06
?
胡說叔叔

TA貢獻1804條經驗 獲得超8個贊

functiontransform(source){
varfilterKeys=["desc","testData"];
if(source===null||typeofsource!=="object"){
returnsource;
}
Object.keys(source).forEach(key=>{
letitem=source[key];
if(item&&typeofitem==="object"&&item.type==="object"){
filterKeys.forEach(filter=>{
deleteitem[filter];
});
letkeys=Object.keys(item),
grouped={};
keys.forEach(subKey=>{
if(subKey!=="type"){
grouped[subKey]=item[subKey];
deleteitem[subKey];
}
});
item.items=transform(grouped);
}else{
source[key]=transform(item);
}
});
returnsource;
}
                            
查看完整回答
反對 回復 2019-05-06
  • 2 回答
  • 0 關注
  • 505 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號