簡體   English   中英

重建以JSON序列化的對象

[英]Rebuilding an object serialized in JSON

在我的Web應用程序中,我使用JSON.stringify()序列化對象以進行存儲, 如此處所述 這很棒,我可以輕松地從JSON字符串重新創建對象,但是我丟失了所有對象的方法。 有沒有一種簡單的方法將這些方法添加回我正在忽略的對象 - 可能涉及原型設計,我不太熟悉的東西?

或者只是為了這樣做而創建我自己的精細功能?

編輯:理想情況下,我正在尋找類似的東西:

Object.inheritMethods(AnotherObject);

在調用JSON.parse后獲得對象后,您有很多選擇。 這是一些例子。

  1. 混入

    有很多技術可以做到這一點,本文很好地介紹了這一點 但是,這是一個不需要任何新語言功能的簡單示例。 請記住,對象本質上只是一個映射,因此JS可以輕松地向對象添加其他屬性。

     var stuffToAdd = function() { this.name = "Me"; this.func1 = function() { print(this.name); } this.func2 = function() { print("Hello again"); } } var obj = JSON.parse("{}"); stuffToAdd.call(obj); 
  2. 原型

    使用Felix提到的Object.create方法。 由於這僅在ES5中提供,因此您可能需要使用墊片來保證其可用性。

老問題,但我今天在搜索這個問題時找到了它。 我在其他地方找到了一個解決方案,並且已經找到了解決方案(ES6):

Object.assign(new myclass(),jsonString);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM