2016-11-09 2 views
0

Ich habe seltsames Problem, das ich nicht verstehe. Ich möchte ein JSON-Objekt in JavaScript erstellen. Mein Beispielcode:Machen Sie ein JSON in JavaScript

$(document).ready(function(){ 

var myJson = new Object(); 
var data = new Object(); 
myJson.items = []; 

data.name = 'test'; 

for (i = 0; i < 5; i++){ 
    data.counter = i; 
    myJson.items.push(data); 
} 
console.log(JSON.stringify(myJson)); 

}); 

Ausgang:

{"items":[{"name":"test","counter":4},{"name":"test","counter":4},{"name":"test","counter":4},{"name":"test","counter":4},{"name":"test","counter":4}]} 

Warum die Zählervariable in JSON immer 4 Wert ??????

+0

Die Eigenschaft, die Sie ändern, ist immer das gleiche 'data.counter'. – Teemu

Antwort

4

Sie sind immer auf den gleichen Daten arbeiten Objekt
stattdessen versuchen, Daten Objektinitialisierung in Schleife setzen

var myJson = new Object(); 
 

 
myJson.items = []; 
 

 

 

 
for (i = 0; i < 5; i++){ 
 
    var data = new Object(); 
 
    data.name = 'test'; 
 
    data.counter = i; 
 
    myJson.items.push(data); 
 
} 
 
console.log(JSON.stringify(myJson));

+0

Konstruiere Objekte, schiebe sie auf ein Array, dann ist '' JSON.stringify'' ebenfalls eine Option. – Crowes

+0

Oh ... Was für ein Fehler ... Natürlich ... Dumm ich ... –

1

ein neues Objekt der var data = new Object(); for-Schleife im Inneren schaffen, kommentieren Sie die oben ein, auch setzen data.name = 'test'; innen für Schleife

Verwandte Themen