2016-05-03 5 views
1

私は、エクスプレスでJadeテンプレートに渡すオブジェクトの大きな配列を持っています。私はそれを文字列化ジェイドテンプレートにそれを渡すJade内のJSONの解析

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

:それはこのようになります

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

を私のジェイドテンプレートでは、私は、JSONを解析し、内の各オブジェクトを反復処理しようとしています次の:

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

しかし、私はそれを印刷するときd[object Obj]としてログに記録され、私はオブジェクトへのアクセスすることができません。 JSON.parse(d)を実行しようとすると、dは文字通り "[オブジェクトObj]"という文字列なので失敗します。私はテンプレートにさまざまな方法のデータを渡して試してみました、そして、短くなっていくつもりです。何か案は?次のようにして固定

+0

[データをすべて文字列化する]必要はありません(http://stackoverflow.com/a/28149612/1377002) – Andy

+0

いいえ、私は信じています。私がしなければ、 'd'は' [オブジェクトObj] 'としてまだログに記録されており、どのプロパティにもアクセスすることはできません。 –

+0

データが有効なjsonオブジェクトの場合、データをストリング化する必要はありません –

答えて

0

をバックエンドエクスプレス側にオブジェクトの配列を構築するときは、私は、配列の中の各オブジェクトを文字列化。その後、文字列化されたJSONオブジェクトの配列をJadeテンプレートに渡しました。その結果、データを解析して使用することができました。あなたがオブジェクトに来て1つのレベル深く行く必要があるオブジェクトの配列を送信するので

0

each d, i in JSON.parse(data[0])を試してみてください。