2017-09-15 81 views
3

我正在一個角度+ nodejs應用程序,我需要從json格式的sql一些數據。我能夠在json中獲取數據,但我需要將數據按照方式分組到樹中。有沒有辦法在SQL,服務器或前端級別做到這一點?數據集json與組

數據我有表

Data I have in Table


我目前得到

{"":[ 
    "3", 
    "6", 
    "12" 
], 
"":[ 
    "3", 
    "6", 
    "13" 
    ], 
"": [ 
    "3", 
    "7", 
    "16" 
    ], 
"": [ 
    "3", 
    "7", 
    "17" 
    ], 
"": [ 
    "3", 
    "8", 
    "18" 
    ], 
"": [ 
    "3", 
    "8", 
    "19" 
    ], 
"": [ 
    "3", 
    "9", 
    "20" 
    ], 
"": [ 
    "3", 
    "9", 
    "21" 
    ] 
} 

什麼I W螞蟻在json:

{"" :{ "3": {"6": ["12", "13"], "7": ["16", "17"], "8": ["18", "19"], "9": [ "20", "21" ]} }} 

請建議一種方法來做到這一點。

在此先感謝!

+1

你可以發佈它現在如何返回的例子嗎? – kauffee000

+0

@ kauffee000更新了示例數據 – Rohit

+0

儘管這似乎並不是有效的JSON。我將建議循環並根據JSON響應構建自己的對象。 – kauffee000

回答

1

首先,你必須讓你的數據作爲有效的JSON象下面這樣:

var items = [ 
    { 
     l0: "3", 
     l1: "6", 
     l2: "12" 
    }, 
    { 
     l0: "3", 
     l1: "6", 
     l2: "13" 
    }, 
    { 
     l0: "3", 
     l1: "7", 
     l2: "16" 
    }, 
    { 
     l0: "3", 
     l1: "7", 
     l2: "17" 
    }, 
    { 
     l0: "3", 
     l1: "8", 
     l2: "18" 
    }, 
    { 
     l0: "3", 
     l1: "8", 
     l2: "19" 
    }, 
    { 
     l0: "3", 
     l1: "9", 
     l2: "20" 
    }, 
    { 
     l0: "3", 
     l1: "9", 
     l2: "21" 
    } 
    ]; 

然後你就可以得到你想要由什麼:

var result = {}; 
items.forEach(item => { 
    result[item.l0] = result[item.l0] || {}; 
    result[item.l0][item.l1] = result[item.l0][item.l1] || []; 
    result[item.l0][item.l1].push(item.l2); 
}); 

console.log(result); 

最終結果:

enter image description here

0

您可以按多個列的SQL查詢結果,這應該返回的順序,你正在尋找的數據:

<original_query> + ORDER BY c1, c2, c3 
+0

的順序是不問題,我可以相應地對其進行排序,但我想要一些方法將它分組,如我在json中所示。可能在SQL中是不可能的,但我只是想檢查一下。 – Rohit

+0

我道歉,我誤解了你的問題。 – Woodsy