2010-12-10 7 views
2

Comment lire un objet Javascript quand je ne sais pas ce qu'il contient?Lire un objet Javascript

J'ai travaillé sur node.js et j'ai une variable pour laquelle je ne sais vraiment pas ce qu'elle contient. Lorsque je tente sys.puts:

sys.puts(headers) // returns [object Object] 

S'il y avait quelque chose comme un print_r en javascript, qui aurait été bien.

+0

Vous pouvez essayer de le convertir en une chaîne JSON ... –

Répondre

2

La plupart des navigateurs Web peuvent utiliser l'JSON-objet à imprimer le contenu d'un objet,

writeln(JSON.stringify(your_object)); 

Si cela échoue, vous pouvez créer votre propre stringifier;

var stringify = function(current) { 
    if (typeof current != 'object') 
     return current; 

    var contents = '{'; 
    for (property in current) { 
     contents += property + ": " + stringify(current[property]) + ", "; 
    } 

    return contents.substring(0, contents.length - 2) + "}"; 
} 

var my_object = {my_string: 'One', another_object: {extra: 'Two'}}; 
writeln(stringify(my_object)); 
4

Vous pouvez boucler sur ses propriétés avec

for (var item in headers) 
{ 
    // item is the name of the property 
    // headers[item] is the value 
} 

exemple à http://www.jsfiddle.net/gaby/CVJry/3/ (nécessite console)

Si vous souhaitez limiter les résultats aux propriétés directes (pas hérité par la chaîne prototype) puis utilisez aussi la méthode hasOwnProperty.

exemple à http://www.jsfiddle.net/gaby/CVJry/2/

+0

La variable 'item' ne devrait-elle pas être déclarée quelque part? –

+0

@ Šime, il devrait .. ajouté :) –

1

Vous pouvez parcourir votre objet pour connaître ses propriétés & leurs valeurs

Supposons que votre objet est

var emp = { 
      name:'abc', 
      age:12, 
      designation:'A' 
     } 

Maintenant, vous pouvez lire les détails dans JS

for(property in emp){ 
alert(emp[property] + " " +property); 
} 

Si vous ajoutez firebug dans votre navigateur Firefox, ouvrez le & dans la fenêtre JS ou JS de la console Firebug.

console.log(a); 
0

Si vous avez besoin juste pour vérifier ce qui est dans un objet (par exemple, il est pertinent de vous pour une raison quelconque, mais vous n'avez pas besoin de cette fonctionnalité dans votre script), vous pouvez simplement utiliser Firebug pour obtenir le objet et vérifiez exactement ce qu'il y a dedans.

+0

Je travaille sur le terminal. –