2013-04-10 38 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,其中串行化输出还存储原始类的名称。