是否有一种方法可以使用与JSON中's不同的属性名?
Is there a way to use a different property name than what's in my JSON?
我有以下JSON(简单的例子):
{
id: 101,
firstName: "John",
surname: "Doe"
}
但是我希望我的模型使用lastName
而不是surname
。像这样,比如:
App.Person = DS.Model.extend({
firstName: DS.attr('string'),
lastName: DS.attr('string', { key: 'surname' })
});
我可以发誓,我看到什么地方显示如何做到这一点,但我的生活,找不到它。我也没有在ember-data数据源中发现任何明显的东西。
我试过在属性选项中设置key
, name
, id
, alias
和map
,但似乎没有人能做到这一点。有办法做到这一点吗?
您应该能够通过REST适配器做到这一点。文档中包含了一个映射"不规则键"到下划线属性名称下的示例:
可以在适配器上映射不规则的键。如果JSON的键为
lastNameOfPerson
,而所需的属性名称仅为lastName
,则通知适配器:App.Person = DS.Model.extend({ lastName: DS.attr('string') }); DS.RESTAdapter.map('App.Person', { lastName: { key: 'lastNameOfPerson' } });
在你的例子中:
DS.RESTAdapter.map('App.Person', {
lastName: { key: 'surname' }
});
同样值得注意的是,Ember期望JSON具有first_name
,而模型具有firstName
。因此,这可能也需要显式调整
相关文章:
- 如何向JSON数组动态添加属性
- 创建新属性后的 JSON 空属性
- 使用XPath样式访问Javascript JSON对象属性
- 在不使用lodash-get的情况下从json中提取深层属性
- json-api和错误结果:无法读取属性'长度'的未定义
- 无法使用ng repeat检索动态创建的JSON对象的属性
- 使用json数据更改视频标签中的src属性
- 只将JSON中的属性加载到现有的javascript对象中,而不破坏方法
- 访问嵌套 json 对象的属性将返回未定义
- JSON.parse:应为''或'}'在对象的属性值之后
- 正在打印JSON属性
- 无法将 json 数据添加到 pyjade 中的数据属性
- 如何解析文本区域中的结构化字符串数据(接近JSON)以检索其所需的属性
- 如何从具有动态可观察属性的淘汰对象中获取 JSON 字符串
- 如何将返回一串数字的 JSON 属性转换为日期
- Gmaps4rails:如何向 json 添加属性
- 向 JSON 对象属性添加引号
- 将地理 JSON 要素属性添加到地图框弹出窗口
- 如何在 JSF 中将 JS 函数作为 JSON 属性传递给前端
- 当图像和链接是 json 对象属性的值时,它们不起作用