Ember.js REST适配器期望JSON返回为:
{
"person": {
"first_name": "Barack",
"last_name": "Obama",
"is_person_of_the_year": true
}
}
但是我的API返回的数据 没有根元素 :
{
"first_name": "Barack",
"last_name": "Obama",
"is_person_of_the_year": true
}
是否可以自定义REST适配器,使其接受我的JSON数据?现在,它显示“ 断言失败:您的服务器返回了一个带有键0的哈希,但是您没有映射 ”
更新: 根据下面的Sherwin
Yu的答案,这是我想出的,到目前为止似乎仍然有效:https
:
//gist.github.com/richardkall/5910875
是的,您可以编写自己的自定义REST适配器。看一下JSONSerializer,RESTSerializer(扩展了JSONSerializer)和REST适配器中的源代码。
基本上,您需要重写extract*
JSONSerializer中的 方法。
当前,它看起来像这样:
extract: function(loader, json, type, record) {
var root = this.rootForType(type);
this.sideload(loader, type, json, root);
this.extractMeta(loader, type, json);
if (json[root]) {
if (record) { loader.updateId(record, json[root]); }
this.extractRecordRepresentation(loader, type, json[root]);
}
},
注意它如何检查json[root]
-您必须根据预期的API响应编写自定义方法。
另一种方法是“预处理”
API中的json以使用根元素。您可以通过找出要调用的方法extract*
(将json传递给它)来做到这一点,然后再修改json以包含根元素。
希望这会有所帮助,如果不清楚,请告诉我。
ListPetientFragment。JAVA 错误是:2021-11-17 18:41:02.417 29997-29997/?E/rtphonemedicat:运行时设置的未知位_标志:0x8000 2021-11-17 18:41:03.628 29997-30029/com。尼戈特。smartphonemedicate E/GED:无法获取GED日志Buf,错误(0)2021-11-17
问题内容: 我试图让Spring中的控制器按照3.0的建议使用Jackson类返回无济于事的JSON响应。我的课程路径中当然有杰克逊jar文件(jackson-core- asl-1.5.5.jar和jackson-mapper-asl-1.5.5.jar)。 至于appconfig.xml条目,我不确定是否需要这些。我将它们放在那里,作为最后的绝望之举,然后再回到ol’fashion non-j
我有一个微调器,其元素保存在共享引用中。当我从微调器中选择任何元素并单击“保存”按钮时,它会将该元素保存在SharedRef中,并且每当我返回此活动时,微调器将与我选择并保存的相同元素一起被选中。当我关闭应用程序并从手机中当前运行的应用程序中删除时,问题就会出现。在这种情况下,当我打开应用程序并转到该活动时,将使用第0个元素选择微调器。我正在从SharedRef获取保存的元素,但未调用getPos
前言 写这篇文章的目的是经常看到开发人员说:把字符串转化为JSON对象,把JSON对象转化成字符串等类似的话题,所以把之前收藏的一篇老外的文章整理翻译了一下,供大家讨论,如有错误,请大家指出,多谢。 正文 本文的主题是基于ECMAScript262-3来写的,2011年的262-5新规范增加了JSON对象,和我们平时所说的JSON有关系,但是不是同一个东西,文章最后一节会讲到新增加的JSON对象。
问题内容: 我在EmployeeController中具有以下示例代码,该代码创建了几个雇员,将其添加到雇员列表中,然后在get请求中返回该雇员列表。从代码返回的JSON包含Employees作为根节点。我需要返回不带Employees属性的JSON数组,因为每当我尝试将JSON结果解析为对象时,除非手动将字符串重新格式化为不包含它,否则都会收到错误消息。 这是调用控制器时收到的JSON结果 这是
知道是什么引起的吗?