2017-06-03 42 views
-2

我有以下JSON結構:如何刪除JSON數據?

[{ 
    "type": 0, 
    "id": 1, 
    "children": [{ 
     "type": 0, 
     "id": 14 
    }, 
    { 
     "type": 0, 
     "id": 1 
    }] 
}, 
{ 
    "type": 0, 
    "id": 16, 
    "children": [{ 
     "type": 0, 
     "id": 15, 
     "children": [{ 
      "type": 0, 
      "id": 13 
     }, 
     { 
      "type": 0, 
      "id": 17 
     }, 
     { 
      "type": 0, 
      "id": 18 
     }] 
    }] 
}] 

如何從我的JSON刪除數據"type":0,"id":15

+0

JSON以大括號'{}'開始,而不是方括號'[]'。請使用有效的結構,並提供有關您問題的更多信息。 –

+1

@ShammelLee JSON數組具有方括號而不是大括號,所以JSON結構確實是有效的(它只是一個數組,而不是一個對象)。 – Frxstrem

+0

{}表示一個JSON對象。 []表示一個JSON數組 –

回答

1

對於JavaScript,

var input = [{"type":0,"id":1,"children":[{"type":0,"id":14},{"type":0,"id":1}]},{"type":0,"id":16,"children":[{"type":0,"id":15,"children":[{"type":0,"id":13},{"type":0,"id":17},{"type":0,"id":18}]}]}]; 
 

 
function filter(input) { 
 
    return input.filter((obj) => { 
 
    if (obj.children) obj.children = filter(obj.children); 
 
    return !(obj.type === 0 && obj.id === 15); 
 
    }); 
 
} 
 

 
var result = filter(input); 
 

 
console.log(result);

這樣type = 0 & id = 15將遞歸去除,內children任何層次結構。

0

從查看您的JSON代碼,它看起來像在數組中有2個頂級對象/屬性。其中一個對象包含一個內部屬性,其中包含要刪除的對象,即{type:0,id:15,children:[....]}

每次都有一個嵌套屬性必須使用點語法或括號來訪問內部屬性的值。 例如,這裏是你的JSON數據:

[ 
    { 
    "type": 0, 
    "id": 1, 
    "children": [ 
     { 
     "type": 0, 
     "id": 14 
     }, 
     { 
     "type": 0, 
     "id": 1 
     } 
    ] 
    }, 
    { 
    "type": 0, 
    "id": 16, 
    "children": [ 
     { 
     "type": 0, 
     "id": 15, 
     "children": [ 
      { 
      "type": 0, 
      "id": 13 
      }, 
      { 
      "type": 0, 
      "id": 17 
      }, 
      { 
      "type": 0, 
      "id": 18 
      } 
     ] 
     } 
    ] 
    } 
] 

假設你的整個數組被稱爲 「蘇打水」: 你訪問它是這樣的:

蘇打[1]。患兒[0]這將成爲獲取數據的路徑(數組到達它們內部的「部分」,記錄索引,例如[0]或[1]或[55],對象通過點符號進入其內部部分,然後屬性名稱我的例子

蘇打[1],因爲汽水是一個數組,因此它使用點符號.children,因爲兒童是汽水的屬性[1]。 da [1] .children是一個數組,我們必須再次使用索引,並且您的對象是該數組中唯一的元素(記住,javascript從0開始索引,意思是0是第一項,1是第二項等)我們必須再次使用用於數組的索引的規則,該規則出現在汽水[1] .children [0]中,並且有您想要的對象!