2016-05-19 20 views
0

Ich bin ein neues zu JSON und konfrontiert Probleme beim Erstellen eines sehr einfachen Array.Wie erstelle ich ein JSON-Array

Ich habe den Schlüssel, Wert-Paar empfing von einem HTML-Formular:

frm1 = {"fname":"John","lname":"Doe","location":"CA"}; 
frm2 = {"fname":"Jenny","lname":"Doe","location":"CA"}; 

Ich mag ein JSON erstellen wie unten:

{ 
    "employee":[ 
    {"fname":"John","lname":"Doe","location":"CA"}, 
    {"fname":"Jenny","lname":"Doe","location":"CA"} 
]} 

Den Versuch, die ersten Formulardaten zu drücken (frm1) nur von unten funktioniert der Code nicht.

var form1 = {"employee":[]}; 

form1.employee = frm1; 

console.log(JSON.stringify(form1)); // prints form1 :{"employee" : ["fname","lname","location"]} 

Nur die Tasten werden gedruckt. Bitte vorschlagen.

+0

Nur zur Klarstellung: Woran Sie arbeiten, sind reine Javascript-Objekte und -Arrays, nicht JSON. JSON ist ein * textuelles * Format zum Austausch von Datenobjekten. –

+0

Muss ich es dann analysieren? – chows2603

+1

Nun, das hängt davon ab, ob Sie mit Objekten (wie im Beispiel) oder Strings (die JSON enthalten können) arbeiten. 'console.log (typeof frm1)' sagt entweder 'object' oder' string'. Z.B. 'console.log (typeof '{" fname ":" john "}')' sagt, dass es eine Zeichenfolge ist, die geparst werden muss, während 'console.log (typeof {" fname ":" john "})' das sagt es ist ein gutes ol Objekt. –

Antwort

2

Nur gelten sie

var form1 = { employee: [frm1, frm2] }; 
2

erstellen Entweder das Objekt mit Array-Elementen

var frm1 = { 
 
    "fname": "John", 
 
    "lname": "Doe", 
 
    "location": "CA" 
 
    }, 
 
    frm2 = { 
 
    "fname": "Jenny", 
 
    "lname": "Doe", 
 
    "location": "CA" 
 
    }; 
 

 
var form1 = { 
 
    "employee": [frm1, frm2] 
 
}; 
 
console.log(JSON.stringify(form1));

oder Elemente schieben später unter Verwendung push()

var frm1 = { 
 
    "fname": "John", 
 
    "lname": "Doe", 
 
    "location": "CA" 
 
    }, 
 
    frm2 = { 
 
    "fname": "Jenny", 
 
    "lname": "Doe", 
 
    "location": "CA" 
 
    }; 
 
var form1 = { 
 
    "employee": [] 
 
}; 
 
form1.employee.push(frm1,frm2); 
 

 
console.log(JSON.stringify(form1));

+0

'Push' akzeptiert mehrere Argumente:' form1.employee.push (frm1, frm2) ' – Oriol

0

var frm1 = {"fname":"John","lname":"Doe","location":"CA"}; 
 
    var frm2 = {"fname":"John","lname":"Doe","location":"CA"}; 
 
    var form1 = {"employee":[" ",""]}; 
 
    
 

 
    form1["employee"][0] = frm1; 
 
    form1["employee"][1] = frm2; 
 
    
 
    
 
    console.log(form1["employee"][0]); 
 
    console.log(form1); 
 
    console.log(JSON.stringify(form1));

Da der Schlüssel-Wert ist ein Array Sie Push verwenden oder seine Array-Index

Leider habe ich Sie falsch verstanden die Frage verwenden möchten ein Array mit mehreren Werten für einzelnes Objekt für Mitarbeiter