2017-09-15 3 views
3

Ich arbeite an einer angular + nodejs-Anwendung und ich brauche einige Daten von SQL im JSON-Format. Ich bin in der Lage, die Daten in json zu bekommen, aber ich brauche die Daten in einer baumähnlichen Art gruppiert werden. Gibt es eine Möglichkeit, dies in SQL, Server oder Front-End-Ebene zu tun?Datensatz auf JSON mit Gruppe

Daten habe ich in Tabelle

Data I have in Table


Was ich derzeit

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

Was ich w Ameise in json:

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

vorschlagen Bitte einen Weg, dies zu tun.

Vielen Dank im Voraus!

+1

Können Sie ein Beispiel hinterlassen, wie jetzt wird es zurückkehrt? – kauffee000

+0

@ kaffee000 mit Beispieldaten aktualisiert – Rohit

+0

Das scheint JSON aber nicht zu sein. Ich schlug vor, auf der Basis einer JSON-Antwort ein eigenes Objekt zu durchlaufen und zu erstellen. – kauffee000

Antwort

1

Zuerst Sie Ihre Daten als gültige Json wie unten erhalten müssen:

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" 
    } 
    ]; 

Dann können Sie bekommen, was Sie wollen von:

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); 

Endergebnis:

enter image description here

0

Sie können Ihre SQL-Abfrage-Ergebnisse nach mehreren Spalten sortieren, diese die Daten in der Reihenfolge zurückkehren sollten Sie suchen:

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

die Reihenfolge ist nicht die Problem, ich kann es entsprechend sortieren, aber ich will einen Weg, es zu gruppieren, wie ich in json gezeigt habe. Vielleicht ist es in SQL nicht möglich, aber ich wollte es nur überprüfen. – Rohit

+0

Ich entschuldige mich, ich habe Ihre Frage falsch gelesen. – Woodsy