Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >我需要在ember.js适配器中自定义序列化程序

我需要在ember.js适配器中自定义序列化程序
EN

Stack Overflow用户
提问于 2019-10-15 06:11:36
回答 1查看 186关注 0票数 1

我的服务器在发送PUT请求时需要以下格式的json。我的服务器是一个使用struts2 rest插件设计的rest api。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
id: "5",
empId: "5",
firstName: "oki", 
lastName: "iko", 
edQual: "phd"
}
but the RESTAdapter serializes it to
[
employees:
 {
  id: "5", 
  empId: "5", 
  firstName: "oki", 
  lastName: "iko",
  edQual: "phd"
 }
]

我尝试在后端忽略属性,但这只是忽略了整个json,并向sql-server提交了null值。我需要覆盖或定制ember.js的序列化,但我不知道怎么做。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-15 09:06:45

这是Ember Data提供的序列化程序的职责之一。我猜您使用的是RestSerializer,它通常与RestAdapter一起使用,对吗?在这种情况下,您应该自定义serializeIntoHash() method。完全不使用名称空间应该通过以下方式来实现:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import RESTSerializer from '@ember-data/serializer/rest';

export default RESTSerializer.extend({
  serializeIntoHash(data, type, record, options) {
    data = this.serialize(record, options);
  }
});

为了不丢失hash上已经存在的任何数据,您可以使用Object.assign()。这也是在JSONSerializer中所做的

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import { assign, merge } from '@ember/polyfills';

const emberAssign = assign || merge;

export default RESTSerializer.extend({
  serializeIntoHash(hash, typeClass, snapshot, options) {
    emberAssign(hash, this.serialize(snapshot, options));
  },
});

assign || merge只需要支持非常老的ember版本。您可以简化为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import { assign } from '@ember/polyfills';

export default RESTSerializer.extend({
  serializeIntoHash(hash, typeClass, snapshot, options) {
    assign(hash, this.serialize(snapshot, options));
  },
});

如果你不支持IE 11,你不需要为assign使用polyfill。在这种情况下,它将是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
export default RESTSerializer.extend({
  serializeIntoHash(hash, typeClass, snapshot, options) {
    Object.assign(hash, this.serialize(snapshot, options));
  },
});

而对于本机类,它看起来像:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
export default class ApplicationSerializer extends RESTSerializer {
  serializeIntoHash(hash, typeClass, snapshot, options) {
    Object.assign(hash, this.serialize(snapshot, options));
  }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58388227

复制
相关文章
我就是要在Win10中运行Win7!!!
很多时候我们使用的软件很“矫情”,有的只支持Windows10,有的对Windows7兼容性最好,尤其是课代表这种喜欢折腾,经常和各种软件打交道的人来说,只有一个系统往往会有一定的局限性,装双系统甚至是多系统又麻烦又容易出问题,而且也总不能来回关机开机对吧?
课代表
2018/11/23
3.3K0
我就要在容器里写文件!?
在生产环境上遇到过一个讨厌的事情,有业务应用在容器中写入大量日志,导致磁盘空间爆满,引发了大面积驱逐。这种情况还有个比较烦心的事情就是无从监控,因此也不能用告警解决。
崔秀龙
2021/03/03
8880
你需药 我来帮!
blocks|key|216169|text||type|atomic|depth|inlineStyleRanges|entityRanges|offset|length|data|216170|216171|216172|216173|entityMap|IMAGE|mutability|IMMUTABLE|imageUrl|https://developer.qcloudimg.com/http-save/yehe-4744530/f64edb0d81264e88c335462710375db7.pn
腾讯云开发TCB
2022/12/27
2360
dart系列之:时间你慢点走,我要在dart中抓住你
时间和日期是我们经常会在程序中使用到的对象。但是对时间和日期的处理因为有不同时区的原因,所以一直以来都不是很好用。就像在java中,为时间和日期修改和新增了多次API,那么作为新生的语言dart而言,会有什么不一样的地方吗?
程序那些事
2021/12/02
6330
dart系列之:时间你慢点走,我要在dart中抓住你
为什么我要在2018年学习Python?
源 / Codecademy 译 / 36氪 从网页编程到时髦的人工智能,机器学习,这个享有"瑞士军刀(万能工具)"盛誉的Python语言, 你学会了吗编者注: 根据维基百科的解释,"Python是一种广泛使用的高级编程语言,由吉多·范罗苏姆创造,第一版发布于 1991 年。Python 的设计哲学强调了代码的可读性和简洁的语法。" 随着大数据,人工智能的兴起,越来越多的人也开始研究起这门语言。 以下这篇文章编译自Alexus Strong在在线学习编程网站Codecademy上发表的文章Why I’
顶级程序员
2018/07/23
3480
为什么我要在2018年学习Python?
为什么我要在2018年学习Python?
根据维基百科的解释,"Python是一种广泛使用的高级编程语言,由吉多·范罗苏姆创造,第一版发布于 1991 年。Python 的设计哲学强调了代码的可读性和简洁的语法。"随着大数据,人工智能的兴起,越来越多的人也开始研究起这门语言。
IT阅读排行榜
2018/08/16
5090
小程序踩坑-appJSON["tabBar"][2]["pagePath"] "pages/test/test" 需在 pages 数组中
又遇到了一个bug,开心ing,报错如下,相信应该在入门的时候,很多人都遇到了这样的bug。
王小婷
2019/06/19
3.7K0
我的WCF之旅(4):WCF中的序列化[下篇]
XMLSerializer 提到XMLSerializer,我想绝大多数人都知道这是asmx采用的Serializer。首先我们还是来看一个例子,通过比较Managed Type的结构和生成的XML的结构来总结这种序列化方式采用的是怎样的一种Mapping方式。和DataContractSerialzer Sample一样,我们要定义用于序列化对象所属的Type——XMLOrder和XMLProduct,他们和相面对应的DataContractOrder和DataContractProduct具有相同的成
蒋金楠
2018/01/16
6480
我的WCF之旅(4):WCF中的序列化[下篇]
Linux中为什么执行自己的程序要在前面加./
在说明清楚问题之前,我们必须了解shell是如何运行程序的。首先我们必须要清楚的是,执行一条Linux命令,本质是在运行一个程序,如执行ls命令,它执行的是ls程序。那么在shell中输入一条命令,到底发生了什么?它会经历哪几个查找过程?
帅地
2019/10/13
1.5K0
关于序列化/反序列化,我梭哈
光看定义上,对于初学者来说,可能很难一下子理解序列化的意义,尤其是面对这种特别学术词语的时候,内心会不由自主的发问:它到底是啥,用来干嘛的?
Java极客技术
2022/12/02
4610
Flink 自定义Avro序列化(Source/Sink)到kafka中
最近一直在研究如果提高kafka中读取效率,之前一直使用字符串的方式将数据写入到kafka中。当数据将特别大的时候发现效率不是很好,偶然之间接触到了Avro序列化,发现kafka也是支持Avro的方式于是就有了本篇文章。
大数据老哥
2021/02/04
2.2K0
Flink 自定义Avro序列化(Source/Sink)到kafka中
我的WCF之旅(4):WCF中的序列化[上篇]
SOA 和Message Windows Communication Foundation (WCF) 是基于面向服务架构(Service Orientation Architecture——SOA)的一种理想的分布式技术(Distributed Technology), 相信在今后在建立基于SOA企业级别的解决方案和进行系统集成方面将会大有作为。一个基于SOA结构的互联系统(Connected System)通常由若干相互独立的子系统(Sub-System)组成,这些子系统可能一个独立的Applic
蒋金楠
2018/01/16
7630
我的WCF之旅(4):WCF中的序列化[上篇]
Python 序列化/反序列化自定义类型
内置json模块对于Python内置类型序列化的描述 """Extensible JSON <http://json.org> encoder for Python data structures. Supports the following objects and types by default: +-------------------+---------------+ | Python | JSON | +====
雪飞鸿
2020/09/21
8670
不要在nodejs中阻塞event loop
我们知道event loop是nodejs中事件处理的基础,event loop中主要运行的初始化和callback事件。除了event loop之外,nodejs中还有Worker Pool用来处理一些耗时的操作,比如I/O操作。
程序那些事
2021/02/02
6490
不要在nodejs中阻塞event loop
我要在k8s集群部署jumpserver(helm)
真的是,几乎没什么文章讲解helm安装jumpserver,jumpserver官方给的k8s安装方式就是helm
dgds
2023/06/09
2.6K3
我要在k8s上部署jenkins(简单)
ServiceAccount它代表一个应用程序或者组件,并具有访问集群中Kubernetes API的令牌
dgds
2023/05/25
2.8K0
【前端】Ember.js学习笔记
在默认情况下,model钩子返回的值,会设置为关联的控制器的model属性。例如,如果App.PostsRoute通过model钩子返回了一个对象,这个对象会设置为App.PostsController的model属性。
zhaokang555
2023/10/17
2480
【前端】Ember.js学习笔记
我要在k8s部署nfs动态存储
用 kubectl describe pvc -n jumpserver jumpserver-pvc 来查看详细信息发现以下提示
dgds
2023/06/09
1.3K0
不要在nodejs中阻塞event loop
我们知道event loop是nodejs中事件处理的基础,event loop中主要运行的初始化和callback事件。除了event loop之外,nodejs中还有Worker Pool用来处理一些耗时的操作,比如I/O操作。
程序那些事
2021/01/26
1.1K0
点击加载更多

相似问题

如何为Ember.js适配器/序列化程序创建单元测试?

25

生成适配器应用程序( ember.js )

10

活动模型序列化程序-自定义适配器

10

旧式API的Ember.js适配器/序列化器配置

12

如何为ember.js创建自定义适配器?

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文