"反序列化"one_answers"规范化"是同一件事还是有区别?一个直截了当的问题。我相信这对于前端模型与后端数据库源/api的通信来说是通用的。但如果没有,这是在Ember Data的上下文中。
有区别。当您进行反序列化时,您的意图是将一种形式(例如javascript对象)转换为另一种形式(例如成员数据模型)。规范化的目的是操作当前表单的数据和/或结构。
对于ember-data,你有RESTSerializer
,带有:
- serialize,它接受一个模型并将其转换为一个普通的javascript对象。
- 规范,它接受一个纯javascript对象并返回一个纯javascript对象。
与transforms/date.js相比:
- 反序列化给定一个数字或字符串返回一个Date对象。
- serialize返回Date对象的字符串表示形式。
为了把这两件事放在上下文中,从JSONSerializer上的applyTransforms方法的文档中(这是转换在纯javascript对象上工作的地方):
给定
DS.Model
的一个子类和一个JSON对象,此方法将遍历DS.Model
的每个属性并调用DS.Transform#deserialize
方法对匹配性能的影响JSON对象。方法之后调用此方法序列化器的normalize
方法。