我需要重新安排我的JSON數組中的下列方式。在輸出中,我需要id
爲重點和對象本身,因爲它的價值。需要重新安排JSON
輸入:
[
{
"id": "1",
"sub": [
{
"id": "1-1",
"sub": [
{
"id": "1-1-1",
"sub": []
}
]
},
{
"id": "1-2",
"sub": []
}
]
},
{
"id": "2",
"sub": []
},
{
"id": "3",
"sub": [
{
"id": "3-1",
"sub": []
}
]
}
]
輸出:
{
"1": {
"id": "1",
"sub": {
"1-1": {
"id": "1-1",
"sub": {
"1-1-1": {
"id": "1-1-1",
"sub": []
}
}
},
"1-2": {
"id": "1-2",
"sub": []
}
}
},
"2": {
"id": "2",
"sub": []
},
"3": {
"id": "3",
"sub": {
"3-1": {
"id": "3-1",
"sub": []
}
}
}
}
我與遞歸嘗試它,但它正在創建循環對象。
function rearrange(obj){
obj[obj.id] = obj;
for(var j = 0; j < obj.sub.length; j++){
obj.sub[j][obj.sub[j].id] = obj.sub[j];
if(obj.sub[j].sub.length > 0){
rearrange(obj.sub[j]);
}
}
}
//調用
rearrange(myobj);
輸出,我建議創建一個新的普通對象並遍歷您的JSON,並在新的對象創建所需的結構而不是試圖「更新」輸入對象。你真的沒有斷裂語句進行遞歸函數 –