在Backbone中访问嵌套的JSON对象

时间:2013-07-04 02:21:14

标签: ruby-on-rails json backbone.js eco

我有一个简单的场景,我使用带有Rails后端的嵌套对象返回JSON。我无法访问嵌套对象的属性。

示例JSON:

[{
  category_id: 2,
  id: 34,
  name: "red",
  category: {
    name: "color"
  }
},
{
  category_id: 2,
  id: 35,
  name: "blue",
  category: {
    name: "color"
  }
}]

假设我想访问ID为35的项目的类别颜色,这在控制台中工作正常:

collection = new App.Collections.Colors()
collection.fetch()
model = collection.get(35)
model.get('category').name

在我的eco模板中,我收到错误“无法读取未定义的属性'名称。”但是,我的模板仍显示如果我只指示

,我可以使用[object Object]访问该对象
<%= model.get('category') %>

有什么想法吗?我确定我不理解一些基本的东西。

已更新

我意识到某些类别名称为nil导致错误。上面的代码应该没问题。

1 个答案:

答案 0 :(得分:2)

您的JSON似乎格式不正确。

根据JSON规范,您需要用引号包装键。

请尝试以下方法:

[{
  "category_id": 2,
  "id": 34,
  "name": "red",
  "category": {
    "name": "color"
  }
},
{
  "category_id": 2,
  "id": 35,
  "name": "blue",
  "category": {
    "name": "color"
  }
}]