2016-05-03 22 views
1

Ich habe eine große Auswahl an Objekten, die ich per Express in eine Jade-Vorlage übertrage. Es sieht wie folgt aus:JSON in Jade analysieren

[{ big object }, { big object }, { big object }, ...] 

ich es in die Jade-Vorlage vorbei stringifying es:

res.render('search-results', { 
    data: JSON.stringify(body) 
}); 

In meiner Jade-Vorlage, Ich versuche, die JSON und iterieren jedes Objekt zu analysieren innerhalb, als folgt: jedoch

each d, i in JSON.parse(data) 
    // Do stuff 

wird d als [object Obj] protokollieren, wenn ich es drucken, und ich bin damit nicht in der Lage zu wieder zuzugreifen. Wenn ich versuche, JSON.parse(d) zu tun, scheitert es auch, weil d buchstäblich die Zeichenkette "[Object Obj]" ist. Ich habe versucht, die Daten in die Vorlage eine Reihe von verschiedenen Möglichkeiten zu übergeben und immer wieder kurz kommen. Irgendwelche Ideen?

+0

Sie müssen [die Daten überhaupt nicht string] (http://stackoverflow.com/a/28149612/1377002) – Andy

+0

Nein, ich glaube, dass ich es tue. Wenn nicht, dann wird "d" immer noch als "[object Obj]" protokolliert, und ich kann auf keine Eigenschaften zugreifen. –

+0

Sie müssen die Daten nicht stringieren, wenn die Daten ein gültiges JSON-Objekt sind –

Antwort

0

indem Sie folgendermaßen vorgehen Korrigiert:

Wenn das Array von Objekten auf der Back-End-Express-Seite der Konstruktion, ich jedes der Objekte innerhalb des Arrays Zeichenfolge. Dann übergab ich das Array von stringifizierten JSON-Objekten an die Jade-Vorlage, die in der Lage war, die Daten zu analysieren und zu verwenden.

0

versuchen each d, i in JSON.parse(data[0])

Da Sie eine Reihe von Objekten, die Sie benötigen, senden Sie eine Ebene tiefer zu gehen, um die Objekte zu kommen.