2016-08-29 2 views
2

Je reçois cette erreur : [objet objet], [objet objet], [objet objet].comment afficher le tableau complet?

Je veux afficher tableau complet comme ceci: 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

n'est pas une erreur, juste un tableau d'objets –

+0

vous devez utiliser ioop pour obtenir le prénom et le nom de famille à l'intérieur de cet obj – Anami

Répondre

2

Vous coud utiliser Array#map et de construire un nouveau tableau et s'y joindre plus tard.

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

votre tableau est un tableau d'objets - vous aurez besoin de faire un peu plus de codage pour l'obtenir comme vous le voulez - pensez à utiliser Tableau # map, puis un tableau # joindre à formater la sortie que vous voulez

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

Si vous souhaitez imprimer tous les noms que vous pouvez faire comme ça, Si vous voulez charger JSON partir d'un fichier externe, vous devez garder fichier JSON sur certains où d'autre sur votre système et vous pouvez le charger en utilisant .getJSON $ comme ci-dessous

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

une idée si peut le faire à partir du fichier externe ?? –

+0

fichier externe signifie ??? –

+0

lecture tableau 'employés' du fichier json externe ?? –