ich versuche, eine dynamische JSON erstellen whith Daten aus meiner Datenbank zurückgegeben: Was ich haben will:dynamische JSON mit SQL-Ausgabe
var myJSON = {
"value" : [ {
"icon_name": "value",
"factor_name": "value",
"number": "value",
"priority": "value"
},
{
"icon_name": "value",
"factor_name": "value",
"number": "value",
"priority": "value"
} ],
"value" : [ {
"icon_name": "value",
"factor_name": "value",
"number": "value",
"priority": "value"
},
{
"icon_name": "value",
"factor_name": "value",
"number": "value",
"priority": "value"
} ],
...
};
Jeden „Wert“ ist dynamisch und abhängig von meiner SQL-Antwort. Meine SQL Antwort sieht so aus.
[ RowDataPacket {
row_names: 587,
icon_name: 'small_event',
factor_name: 'Petit évènement',
number: 10,
priority: 1 },
RowDataPacket {
row_names: 587,
icon_name: 'cold',
factor_name: 'Température basse',
number: 10,
priority: 7 },
RowDataPacket {
row_names: 587,
icon_name: 'rain',
factor_name: 'Pluie',
number: 10,
priority: 12 },
RowDataPacket {
row_names: 588,
icon_name: 'small_event',
factor_name: 'Petit évènement',
number: 10,
priority: 1 },
RowDataPacket {
row_names: 588,
icon_name: 'cold',
factor_name: 'Température basse',
number: 10,
priority: 7 }]
Es gibt mehrere Werte (icon_name, faktor_name, ...) für eine row_names. Ich möchte alle diese Werte für jede eindeutige row_names neu gruppieren.
Hier mein Code (Zeilen [3] ist meine SQL-Ausgabe):
var result = []
var r_names = "";
var j = 0;
var id = "";
for(i = 0; i < rows[3].length; i++) {
if(r_names != rows[3][i].row_names) {
j = 0;
id = ''+rows[3][i].row_names;
result[id] = [];
r_names = rows[3][i].row_names
}
result[id].push({});
result[id][j]["icon_name"] = rows[3][i].icon_name,
result[id][j]["factor_name"] = rows[3][i].factor_name,
result[id][j]["number"] = rows[3][i].number,
result[id][j]["priority"] = rows[3][i].priority
j++;
}
Hier mein Ergebnis:
...
,
,
,
,
,
,
,
,
,
,
,
[ { icon_name: 'small_event',
factor_name: 'Petit évènement',
number: 10,
priority: 1 },
{ icon_name: 'temperate',
factor_name: 'Température modéré',
number: 10,
priority: 7 },
{ icon_name: 'rain',
factor_name: 'Pluie',
number: 10,
priority: 12 } ],
,
,
,
,
,
,
...
,
,
,
,
,
,
[ { icon_name: 'small_event',
factor_name: 'Petit évènement',
number: 10,
priority: 1 },
{ icon_name: 'temperate',
factor_name: 'Température modéré',
number: 10,
priority: 7 },
{ icon_name: 'rain',
factor_name: 'Pluie',
number: 10,
priority: 12 } ] ]
Ich habe keine Ahnung, warum ich so viel haben ''. Es ist mir nicht gelungen, meinen Fehler zu finden. Haben Sie eine Idee?
In der Tat habe ich versucht, meine row_names als Zeichenfolge zu konvertieren, um Fehler zu vermeiden, aber es hat nicht funktioniert. Es tut mir leid, aber ich bin mir nicht sicher, ob ich deine Lösung vollständig verstehe. Wie kann ich hier ein Objekt verwenden? Es wird nichts ändern, nein? – onedkr
ändere 'var result = [] 'in' var result = {} ' –
-_- Vielen Dank es funktioniert :) – onedkr