0

我有一个简单的场景,我返回带有 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

在我的生态模板中,我收到错误消息“无法读取未定义的属性‘名称’。” 但是,我的模板仍然显示我可以使用 [object Object] 访问该对象,如果我只指出

<%= model.get('category') %>

有任何想法吗?我确定我没有理解一些基本的东西。

更新

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

4

1 回答 1

2

看来您的 JSON 格式不正确。

根据 JSON 规范,您需要用引号将键括起来。

请尝试以下操作:

[{
  "category_id": 2,
  "id": 34,
  "name": "red",
  "category": {
    "name": "color"
  }
},
{
  "category_id": 2,
  "id": 35,
  "name": "blue",
  "category": {
    "name": "color"
  }
}]
于 2013-07-04T02:28:21.477 回答