[英]Array of JavaScript objects from JSON
我有一個深層嵌套的JSON結構,如下所示:
[
{
"ATA": "49",
"Description": "APU",
"MSI": "",
"Level":"1",
"ChildNodes": {
"Nodes": [
{
"ATA": "49-10",
"Description": "Power Plant",
"MSI": "",
"Level":"2",
"ChildNodes": {
"Nodes": [
{
"ATA": "49-13",
"Description": "APU Mounts",
"MSI": "Yes",
"Level":"3",
"ChildNodes": {
"Nodes": [
{
"ATA": "49-13-01",
"Description": "APU Gearbox Mount Bracket",
"MSI": "Yes",
"Level":"4"
}]
}
}
]
}
}
]
}
}
]
我正在嘗試將以下內容轉換為表單數組,以便更輕松地處理以表格格式顯示的數據:
[{ATA:"49",Description:"APU",MSI:""},{ATA:"49-10",Description:"PowerPlant",MSI:""}]...
我已經嘗試了很多方法,盡管我可以獲得所有鍵/值對,但是我不知道該怎么做。 我無法更改JSON,因為所有子節點都具有依賴項。 有任何想法嗎?
編輯:我嘗試以下解決方案來獲取所有鍵/值對: 使用JavaScript遍歷JSON對象樹的所有節點,但是我找不到何時啟動新對象。
您應該為此使用遞歸函數:
function processNodes(nodes, output){
for (var i = 0, l = nodes.length; i < l; ++i){
output.push({
"ATA": nodes[i]["ATA"],
"Description": nodes[i]["Description"],
"MSI": nodes[i]["MSI"]
});
if (nodes[i]["ChildNodes"]){
processNodes(nodes[i]["ChildNodes"]["Nodes"], output);
}
}
}
然后:
var json = JSON.parse( ... );
var output = [];
processNodes(json, output);
console.log(output);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.