2016-08-29 4 views
2

Ich bekomme diese Fehler: [Objekt Objekt], [Objekt Objekt], [Objekt Objekt].Wie wird das komplette Array angezeigt?

möchte ich so komplette Array anzuzeigen: John Doe, Anna Smith, Peter Jones

<!DOCTYPE html> 
 
<html> 
 
<body> 
 

 
<h2>Create Object from JSON String</h2> 
 

 
<p id="demo"></p> 
 

 
<script> 
 
var text = '{"employees":[' + 
 
'{"firstName":"John","lastName":"Doe" },' + 
 
'{"firstName":"Anna","lastName":"Smith" },' + 
 
'{"firstName":"Peter","lastName":"Jones" }]}'; 
 

 
obj = JSON.parse(text); 
 
document.getElementById("demo").innerHTML = 
 
obj.employees; 
 
</script> 
 

 
</body> 
 
</html>

+0

ist kein Fehler, nur Array von Objekten –

+0

müssen Sie ioop verwenden, um Vorname und Nachname innerhalb dieses obj – Anami

Antwort

2

Sie Array#map verwenden coud und ein neues Array erstellen und es später beitreten.

var text = '{"employees":[' + 
 
     '{"firstName":"John","lastName":"Doe" },' + 
 
     '{"firstName":"Anna","lastName":"Smith" },' + 
 
     '{"firstName":"Peter","lastName":"Jones" }]}', 
 
    obj = JSON.parse(text); 
 

 
document.getElementById("demo").innerHTML = obj.employees.map(function (a) { 
 
    return a. firstName + ' ' + a.lastName; 
 
}).join(', ');
<h2>Create Object from JSON String</h2> 
 
<p id="demo"></p>

0

Ihr Array ist ein Array von Objekten - Sie werden einige weitere Codierung es tun müssen, um zu bekommen, wie Sie es wollen - betrachten Array # Karte, dann kommen ein Array # zu formatieren Sie die Ausgabe, wie Sie

var text = '{"employees":[' + 
'{"firstName":"John","lastName":"Doe" },' + 
'{"firstName":"Anna","lastName":"Smith" },' + 
'{"firstName":"Peter","lastName":"Jones" }]}'; 

obj = JSON.parse(text); 
document.getElementById("demo").innerHTML = obj.employees.map(function(emp) { 
    return emp.firstName + ' ' + emp.lastName; 
}).join(', '); 

for ES2015 completeness

document.getElementById("demo").innerHTML = obj.employees.map(emp => emp.firstName + ' ' + emp.lastName).join(', '); 
0

wollen Wenn Sie die alle Namen drucken möchten, können Sie tun wie dieses, Wenn Sie JSON von externen Datei laden, die Sie auf einige JSON-Datei zu halten, wo sonst auf Ihrem System und Sie können es laden mit $ .getJSON wie unter

var text = '{"employees":[' + 
 
'{"firstName":"John","lastName":"Doe" },' + 
 
'{"firstName":"Anna","lastName":"Smith" },' + 
 
'{"firstName":"Peter","lastName":"Jones" }]}'; //// keep this in an external file 
 

 
$.getJSON('/path', function(data) { 
 

 
    obj = JSON.parse(data); 
 
    for (var i = 0; i < obj.employees.length; i++) 
 
    { 
 
     document.getElementById("demo").innerHTML += obj.employees[i].firstName + " " + obj.employees[i].lastName + ","; 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<!DOCTYPE html> 
 
<html> 
 
<body> 
 

 
<h2>Create Object from JSON String</h2> 
 

 
<p id="demo"></p>

+0

eine Idee zu bekommen, wenn dies von externer Datei tun kann ?? –

+0

externe Datei bedeutet ??? –

+0

Array 'Mitarbeiter' aus externen JSON-Datei lesen? –

Verwandte Themen