2014-06-19 163 views
0

我有一個問題,使用Node和Angular從JSON(來自MongoHQ的BSON)讀取嵌套數組。NodeJS/AngularJS - 從JSON讀取對象數組

JSON片段http://pastie.org/9305682。特別注意邊緣數組。

貓鼬模型http://pastie.org/9305685

基本上我打電話從數據庫中的字符,然後嘗試將其與 的console.log(炭)登錄到控制檯上;,然後將其發送回角度呼叫res.json(char);'char'是數據庫中返回的保存爲我的貓鼬模型的字符。

試圖將角色登錄到控制檯。 除了嵌套「效果」陣列的部分外,我看到的一切看起來都正常。任何地方,他們顯示我收到以下:

edges:                                                           
[ { name: 'Super Hacker', notes: '', effects: [Object] },                                              
    { name: 'Witty', notes: '', effects: [Object] },                                               
    { name: 'Attractive', notes: '', effects: [Object] },                                              
    { name: 'Encyclopedic Memory',                                                    
    notes: 'Prereq: d8 Smarts',                                                    
    effects: [Object] },                                                      
    { name: 'Daywalker', notes: '', effects: [Object] },                                              
    { name: 'Tough', notes: '', effects: [Object] } ],  

從這裏,如果我嘗試調用它:

從的NodeJS - 的console.log(焦[0] .edges [0]。影響[0] .TYPE); - 返回未定義。

從角度視圖 - {{cur_char.edges [0] .effects [0] .type}} - 什麼都不顯示。

在此先感謝您的幫助。讓我知道如果我可以提供更多的英寸

+0

你試過只是CONSOLE.LOG(的char [0] .edges [0]影響[0]),看是否對象被返回JSON? – JoshSGman

+0

調用這個我得到[對象對象]。 – Tyrrexx

回答

0

我想你問的是如何看到更多的深度在控制檯輸出的對象。您可以使用util.inspect打印出更多的信息:

console.log(util.inspect(char, { depth: 5 })); 

默認情況下util.inspect只到2的深度這就解釋了爲什麼你只能看到陣列(1)和各元素的原始屬性的內容陣列(2)。

參見:http://nodejs.org/api/util.html#util_util_inspect_object_options

+0

好的,我試過了。儘管我仍然得到了[object]的相同結果。 – Tyrrexx

+0

它似乎爲我工作。這是我創建的一個腳本來測試它。在屏幕上,我可以看到控制檯中顯示的所有邊緣的「效果」。 https://gist.github.com/anonymous/f8f29903010a6f425e03我命名文件'char.js'並運行:'node char.js' – Hayes

+0

嗯,是的,這樣做也適用於我。我認爲問題在於效果數組需要被視爲自己的模式。無論我決定只是將效果保持爲單個字符串數組而不是對象的一個​​數組。謝謝您的幫助! – Tyrrexx