2015-07-19 81 views
1

是要「反序列化」和「正常化」相同的事情還是有差異?一個直截了當的問題。我相信這是前端模型通信到後端數據庫源/ API的通用。但是,如果沒有,這是在Ember Data的情況下。反序列化和標準化有什麼區別?

回答

2

有差異。當你將控制權轉移時,你的意圖是從一種形式轉變爲JavaScript對象,並將其轉換爲另一種形式,即一種燼數據模型。當你規範化你的意圖是操縱當前表單的數據和/或結構。

所以與Ember數據你有RESTSerializer有:

  • 連載這需要一個模型,並把它變成一個普通的JavaScript對象。
  • 正常化它接受一個普通的javascript對象並返回一個普通的javascript對象。

相比transforms/date.js

  • 反序列化給出一個數字或字符串返回Date對象。
  • serialize返回Date對象的字符串表示形式。

要在上JSONSerializer的applyTransforms方法把兩者的這些東西在上下文中,從所述文檔(這是其中變換上平原javascript對象工作):

鑑於DS.Model一個子類,並一個JSON對象,該方法將 遍歷DS.Model的每個屬性,並調用 DS.Transform#deserialize方法對 JSON對象的匹配屬性。該方法通常在 串行器的normalize方法之後調用。