2010-12-10 13 views
2

Wie lese ich ein Javascript-Objekt, wenn ich nicht weiß, was darin enthalten ist?Ein JavaScript-Objekt lesen

Ich habe an node.js gearbeitet und habe eine Variable, für die ich wirklich nicht weiß, was drin ist. Als ich sys.puts versuchen:

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

Wenn gab es so etwas wie ein print_r in Javascript, das wäre gut gewesen.

+0

Sie können versuchen, es in einen JSON-String zu konvertieren ... –

Antwort

2

meisten Web-Browser können die JSON-Objekt verwenden, um den Inhalt eines Objekts zu drucken,

writeln(JSON.stringify(your_object)); 

Wenn das fehlschlägt, können Sie Ihre eigenen stringifier erstellen;

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

Sie können Schleife über seine Eigenschaften mit

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

Beispiel bei http://www.jsfiddle.net/gaby/CVJry/3/ (erfordert Konsole)

Wenn Sie die Ergebnisse der direkten Eigenschaften beschränken möchten (nicht durch die Prototypkette geerbt) dann verwenden Sie auch die hasOwnProperty Methode.

Beispiel bei http://www.jsfiddle.net/gaby/CVJry/2/

+0

Sollte nicht die Variable 'item' irgendwo deklariert werden? –

+0

@ Šime, sollte es .. hinzugefügt :) –

1

Sie können durch Ihr Objekt Schleife um seine Eigenschaften kennen & ihre Werte

Angenommen, Ihr Objekt ist

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

Jetzt können Sie die Details in JS lesen

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

Wenn Sie Haben Sie Firebug in Ihrem Firefox-Browser hinzugefügt, öffnen Sie es & schreiben entweder in JS oder JS-Fenster in Firebug-Konsole.

console.log(a); 
0

Wenn Sie es brauchen nur zu überprüfen, was in einem Objekt ist (dh, es ist aus irgendeinem Grund für Sie relevant, aber Sie nicht, dass die Funktionalität in Ihrem Skript benötigen), können Sie Firebug nur das bekommen Objekt und überprüfen Sie genau, was drin ist.

+0

Ich arbeite am Terminal. –