2016-08-04 9 views
0

Ich benutze d3-Bibliothek, um JSON aus Datei zu lesen. Mein json ist eine loong Linie von Schlüsseln und Werten so dass ich Code unten verwenden, um es „lesbar“Object Objekt anstelle von Wert "Lesen" durch JSON-Objekt

d3.json("/try.json", function(error, input) { 
     for(var key in input){ 
      console.log(key+ ' : '+input[key]); 
     } 
    }); 

Ausgang I erhalten ist:

type : user_interaction 
user_interaction : [object Object] 
time : [object Object] 
event_id : 771ae5e3-c9d0-4950-b349-55ceeb35f7ee 
device : [object Object] 
source : product-a 
format : base-v2-client 
tenant_id : 46bb7e3c2f0d01a3aa4a3b21a3b93fd886cdba88 
application : [object Object] 
consent : [object Object] 
network : [object Object] 
timestamp : 1433661896414 
sender_info : [object Object] 
system : [object Object] 

Also mein Problem ist, dass, wenn ein Wert von Ein Schlüssel ist ein Objekt Ich bekomme "Objekt Objekt" anstelle eines Wertes. Aber wenn mein console.log würde wie folgt aussehen:

console.log(input[key]); 

Alle Werte würden

{ type: 'view', view_id: 'msclient:view.main' } 
{ create_timestamp: 1433661911699, 
    send_timestamp: 1433661911703 } 

Oben ist ein Teil der Ausgabe für user_interaction und Zeit (beide hatten Objekt Objekt anstelle Wert angezeigt werden in das erste Beispiel)

I Nutzungs konnte

console.log(key+ ' : '); 
console.log(input[key]); 

aber dann ist der Ausgang lo oks hässlich:

type : 
user_interaction 
user_interaction : 
{ type: 'view', view_id: 'msclient:view.main' } 
time : 
{ create_timestamp: 1433661911699, 
    send_timestamp: 1433661911703 } 

Also die Frage ist, ist es möglich, die Ausgabe aus dem ersten Beispiel haben Werte anstelle von Objekt Objekt Dinge?

Ich entschuldige mich für einen langen Text, Danke im Voraus!

+0

Sie konvertieren es in eine Zeichenfolge. Tu das nicht. – SLaks

+0

Aber dann kann ich es leicht durchlesen. Gibt es noch eine andere Option? Btw Im neu zu js und jsons :) – JavaEvgen

+0

Könnte auch versuchen, console.dir (input); https://developer.mozilla.org/en-US/docs/Web/API/Console/dir – Will

Antwort

1

Sie haben das Objekt in eine Zeichenfolge konvertiert, indem Sie es mit einem Zeichenfolgenwert verkettet haben. Versuchen Sie es stattdessen.

d3.json("/try.json", function(error, input) { 
     for(var key in input){ 
      console.log(key, ':', input[key]); // do not convert object to string 
     } 
    }); 
+0

Loool, das kann nicht wahr sein Ich verbrachte ungefähr 2 Stunden um herauszufinden, wo das Problem ist: D Vielen Dank! !! Wusste nicht einmal, dass es eine andere Möglichkeit gibt, Werte und Zeichenketten zu kombinieren: S – JavaEvgen