Hallo,
ich will in JS ein JSON erstellen/ausgeben und komme nicht weiter.
In einem Array habe ich eine SQL Abfrage, den Tabellennamen und dann immer die Spalten der Tabelle. Dies wiederholt sich dann je nach dem wie viele Tabellen ich habe.
Dann wollte ich eine function haben, damit ich nicht immer alles wiederholt hinschreiben muss.
Ich splitte die SQL Abfrage, den Tabellennamen und die Spalten und schreibe sie in eine Variable.
Danach frage ich die Einträge von der jeweiligen Tabelle mit dem SQL Befehl ab. Da die Anzahl der Spalten unterschiedlich ist, muss ich es so hinbekommen, das er auch immer alle Spalten schreibt.
Am Ende will ich die JSON Struktur haben damit ich die in eine Datei weg schreiben kann.
So hatte ich es mir gedacht wie es gehen sollte.
Wie das Ergebnis sein sollte.
ich hoffe ich habe es etwas verständlich rüber gebracht.
Danke und VG
Mario
ich will in JS ein JSON erstellen/ausgeben und komme nicht weiter.
In einem Array habe ich eine SQL Abfrage, den Tabellennamen und dann immer die Spalten der Tabelle. Dies wiederholt sich dann je nach dem wie viele Tabellen ich habe.
Dann wollte ich eine function haben, damit ich nicht immer alles wiederholt hinschreiben muss.
Ich splitte die SQL Abfrage, den Tabellennamen und die Spalten und schreibe sie in eine Variable.
Danach frage ich die Einträge von der jeweiligen Tabelle mit dem SQL Befehl ab. Da die Anzahl der Spalten unterschiedlich ist, muss ich es so hinbekommen, das er auch immer alle Spalten schreibt.
Am Ende will ich die JSON Struktur haben damit ich die in eine Datei weg schreiben kann.
So hatte ich es mir gedacht wie es gehen sollte.
Code:
var array = ["SELECT carrier_id, carrier_name FROM carriers;|carriers|carrier_id|carrier_name", "SELECT client_id, company_name, company_code, storage_days FROM clients;|clients|client_id|company_name|company_code|storage_days"]; readDB.apply(this, array); function readDB() { for (i = 0; i < array.length; i++) { var array_plus = []; var vara = array[i].split("|"); var cmd = vara[0]; var table = vara[1]; console.info("Table: " + table); plus1 = {}; plus2 = {}; plus1.tables = []; sql.eachRowNative("OMSDB", cmd, function(row) { var k = 0; plus1.tables['command'] = cmd; plus1.tables['table'] = table; plus2.tables[i] = {}; plus2.tables[i].columns = []; for (j = 2; j < vara.length; j++) { if (row[k] == null) { var value = JSON.parse('""'); } else { var value = row[k]; } plus2.tables[i].columns[k][vara[j]] = value; k++; } plus1.tables.push(plus2.tables[i]); array_plus.push(plus1.tables); console.info(plus1.tables); }) } }
Code:
{ "tables": [ { "command": "SELECT carrier_id, carrier_name FROM carriers", "table": "carriers", "entries": [ { "carrier_id": "DP", "carrier_name": "DPAG" }, { "carrier_id": "BP", "carrier_name": "Briefpost" } ] }, "command": "SELECT client_id, company_name, company_code, storage_days FROM clients;", "table": "clients", "entries": [ { "client_id": "123456", "company_name": "DP", "company_code": "ABC", "storage_days": "7" }, { "client_id": "654321", "company_name": "Amazon", "company_code": "AZN", "storage_days": "7" } ] } ] }
Danke und VG
Mario
Comment