2013-04-10 24 views
2

我想轉換一個Ruby對象成JSON並轉換回JSON到Ruby對象。使用我所見過的所有代碼,JSON被轉換回哈希(而不是自定義的Ruby對象)。有人可以告訴我這是如何實現的嗎?Ruby對象到JSON和背部

+0

提供更多關於你在找什麼的信息。你正在使用什麼自定義課程? json如何被創建?你的json是怎樣的?等等。 – 2013-04-10 10:42:52

+0

AFAICS,你有興趣將JSON轉換成你自己的對象。爲什麼不使用_your_對象的默認構造函數將散列作爲參數? – mudasobwa 2013-04-10 10:46:29

+0

處理這種JSON的任何中間系統都至少需要遵守格式(通過保留它),並且可能需要完全建模(如果需要例如爲以後的存儲生成新對象)。當然,如果JSON只是被自發的Ruby代碼發佈和使用,那麼很容易 - 但如果是這樣,爲什麼不使用現有的持久化方案,比如Marshal或ActiveRecord? (事實上​​,我不會驚訝於找到一個包裝JSON序列化存儲的ActiveRecord實現)。 – 2013-04-10 11:09:26

回答

1

從對象到JSON的轉化是有損耗的。事實上,序列化過程並不保留這個類。

,以恢復它的唯一方法是通過類的名稱,如序列化JSON屬性,並指示反序列化程序來實例化類的一個實例。

否則,如果你事先知道這個類,只需添加從哈希初始化一個新對象的能力的類。

另一種替代方法是使用YAML,其中串行化輸出還存儲原始類的名稱。