2016-06-15 14 views
0

dieser verwirrte mich und ich bin nicht einmal sicher, ich suche die richtigen Schlüsselwörter für mögliche Erklärungen.Javascript Karte CSV-String zu JSON-Array

Ich sende einen RPC an einen Remote-Server. Die Antwort, die ich erhalten, ist nur eine durch Kommata getrennte Zeichenfolge mit Werten (ohne Schlüssel) wie folgt:

val1,val2,val3,val4,val5,val6,val7,val8,val9 

Als ich diese Antwort erhalten Ich brauche diese Werte durch JS Schlüssel zur Karte (hartcodiert, nenne ich) und erzeugen ein JSON-Array wie folgt:

{ 
    "response": { 
    "mykey1" : "val1", 
    "mykey2" : "val2", 
    "mykey3" : "val3", 
    "mykey4" : "val4", 
    "mykey5" : "val5", 
    "mykey6" : "val6", 
    "mykey7" : "val7", 
    "mykey8" : "val8", 
    "mykey9" : "val9" 
    } 
} 

Kann jemand Schubs mich in die richtige Richtung ... Beispielcode oder Tutorials, die sind in der Nähe zu dem, was ich suche? Dies ist ein Middleware-Skript, das aufgerufen wird, wenn der Server die Antwort empfängt.

Dies ist mein erster Beitrag hier, habe eine lange Zeit in Obj-C lernen und anwenden und wie ich Swift lerne, aber JS ist neu für mich. Ich im Voraus entschuldigen, wenn ich irgendwelche Protokolle breche durch um Hilfe zu bitten, ohne meine schwachen Versuche Posting auf diese herauszufinden ...

+0

Wissen Sie, was Ihre Schlüssel sind? Was ist, wenn du 15 Schlüssel hast und nur 5 'Val's zurückbekommst? – mariocatch

+0

Hallo Mariokuchen. Ja, ich habe gerade meinen Beitrag aktualisiert. Die Zeichenfolge, die ich erhalte, hat immer die gleiche Anzahl von Werten (in meinem Fall ist es 11) und wird immer in der gleichen Reihenfolge sein. Wenn der Wert nicht zurückgegeben wird, wird es wie folgt aussehen: val1, val2,, val4 ,,, val7 ..., aber es wird immer eine x-Anzahl von Komma-Delimetern geben. –

+0

Verwenden Sie einfach 'String.split (',')', dann können Sie mit dem resultierenden Array machen, was Sie wollen. Das Objekt, das Sie mit den Ergebnissen erstellen möchten, sollte sinnvoll sein. Wenn Sie nur diese Schlüssel verwenden möchten, warum sollten Sie überhaupt ein Objekt erstellen? – PHPglue

Antwort

1
  1. Sie kann split die Antwort auf Komma, die Ihnen ein Array geben wird.

  2. Da beide Arrays (Schlüssel und Vals) die gleiche Länge haben, können Sie beide überlappen und Ihr Array von Objekten auf diese Weise erstellen. Siehe unten

var response = 'val1,val2,val3,val4,val5'; 
 
var keys = [ 
 
    'key1', 'key2', 'key3', 'key4', 'key5' 
 
]; 
 

 
var dict = []; 
 
var vals = response.split(','); 
 

 
vals.forEach(function(val, i) { 
 
    dict[keys[i]] = val; 
 
}); 
 

 
console.log(dict);

+0

Okay, toller Matiocatch! Lassen Sie mich ein bisschen arbeiten und mit Ergebnissen zurückkommen. Vielen Dank! –

0

Lesen Sie meinen Kommentar, dann check this out:

var result = 'val1,val2,val3,val4,val5,val6,val7,val8,val9'; 
// real question should be why result is not JSON already 
var resArray = result.split(','); 
console.log(resArray[0]); // first result 
console.log(resArray[1]); // second result 
+0

Danke PHPGlue, ich gebe dir eine Chance. Ich kann die Endpunktreaktion nicht ändern, es ist ein Zahlungsverarbeitungssystem, das bereits durch Kartenmarkenzertifizierungen gegangen ist, etc. Irgendwelche Änderungen erfordern alle Arten von Drama. Vielen Dank! –