2016-11-11 99 views
2

我正在檢索一個JSON對象數組,然後將JS split屬性的內容用於解析需求的子數組。如何分割添加子屬性名稱的JSON屬性值?

但我不知道如何將子屬性名稱添加到該屬性的新創建的數組。

所以,現在當我使用的財產分割:

for (var i = 0; i < recordsets[0].length; i++){ 
     recordsets[0][i].Chart_Name = recordsets[0][i].Chart_Name.split(',');       
    } 

我得到以下輸出:

"Chart_Name":[ 
      "Criticality", 
      " Status" 
     ], 

但我瞄準屬性名稱添加到每個數組值像:

"Chart_Name":[ 
      {name: "Criticality"}, 
      {name: "Status"} 
     ], 

問題:

如何將Json字符串拆分爲子屬性數組?

這是JSON陣列方面的要點:

[ 
    [ 
     { 
     "Dashboard_Name":"my dashboard", 
     "Chart_Name":[ 
      "Criticality", 
      " Status" 
     ] 
     } 
    ] 
] 
+0

你能提供您JSON? –

回答

1

你可以使用Array#map並返回一個對象。

for (var i = 0; i < recordsets[0].length; i++){ 
    recordsets[0][i].Chart_Name = recordsets[0][i].Chart_Name.split(',').map(function (a) { 
     return { name: a }; 
    }); 
} 

或重寫整個短一點

recordsets[0].forEach(function (a) { 
    a.Chart_Name = a.Chart_Name.split(',').map(function (b) { 
     return { name: b }; 
    }); 
}); 

帖子編輯建議不split

for (var i = 0; i < recordsets[0].length; i++){ 
    recordsets[0][i].Chart_Name = recordsets[0][i].Chart_Name.map(function (a) { 
     return { name: a }; 
    }); 
} 

或重寫整個短一點

recordsets[0].forEach(function (a) { 
    a.Chart_Name = a.Chart_Name.map(function (b) { 
     return { name: b }; 
    }); 
}); 
+0

我有點好奇:爲什麼你使用split方法而不是簡單的'a.Chart_Name = a.Chart_Name.map(function(b){return {「name」:b};});' – Eineki

+0

@ Eineki,我想'a.Chart_Name'是一個帶逗號分隔符的字符串。 –

+0

@NinaSchloz啊,好的。從這個例子看,它似乎是一個數組。我注意到剛纔你的回答是用結構樣本編寫的問題編寫的。 – Eineki