【问题标题】:NodeJS/AngularJS - Reading Array of Objects from JSONNodeJS/AngularJS - 从 JSON 读取对象数组
【发布时间】:2014-08-10 07:10:34
【问题描述】:

我在使用 Node 和 Angular 从 JSON(来自 MongoHQ 的 BSON)读取嵌套数组时遇到问题。

JSON sn-phttp://pastie.org/9305682。专门寻找边缘数组。

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

基本上我从数据库调用字符,然后尝试将其记录到控制台 console.log(char); 在将其发送回带有 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(char[0].edges[0].effects[0].type); - 返回未定义。

从角度视图 - {{cur_char.edges[0].effects[0].type}} - 什么都不显示。

提前感谢您的帮助。如果我能提供更多信息,请告诉我。

【问题讨论】:

  • 您是否尝试过仅使用 console.log(char[0].edges[0].effects[0]) 来查看对象是否以 JSON 格式返回?
  • 调用这个我得到 [object Object]。

标签: javascript json node.js angularjs mongodb


【解决方案1】:

我认为您要问的是如何在控制台输出中查看对象的更多深度。您可以使用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

【讨论】:

  • 好的,我已经试过了。我仍然得到 [object] 的相同结果。
  • 它似乎对我有用。这是我为测试它而创建的脚本。在屏幕上,我看到effects 显示在控制台中的所有边缘。 gist.github.com/anonymous/f8f29903010a6f425e03 我将文件命名为 char.js 并运行它:node char.js
  • 嗯,是的,这样做也对我有用。我认为问题在于效果数组需要被视为自己的模式。无论如何,我决定将效果保留为单个字符串数组而不是对象数组。感谢您的帮助!
猜你喜欢
  • 2012-04-19
  • 2023-03-31
  • 2018-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-10
相关资源
最近更新 更多