反序列化和规范化有什么区别?



"反序列化"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方法。

最新更新