Ruby相当于PHP的“反序列化”功能?

时间:2009-11-16 21:36:33

标签: php ruby

我正在处理来自MySQL数据库的一些序列化数据,我需要使用Ruby对其进行反序列化(序列化数据用于为数据库查询构建WHERE子句)。 PHP使用unserialize()方法将其转换为数组; Ruby的等价物是什么?

有问题的数据看起来像这样,如果有帮助的话:

a:2:{s:5:"Lists";a:1:{i:0;s:2:"11";}s:5:"Rules";a:1:{i:0;a:3:{s:4:"type";s:5:"group";s:9:"connector";s:3:"and";s:5:"rules";a:1:{i:0;a:3:{s:4:"type";s:4:"rule";s:9:"connector";s:3:"and";s:5:"rules";a:3:{s:8:"ruleName";s:2:"21";s:12:"ruleOperator";s:10:"isnotempty";s:10:"ruleValues";a:1:{i:0;s:0:"";}}}}}}}

3 个答案:

答案 0 :(得分:5)

我想完全相同的是this。您还可以查看Ruby的Marshall Class,特别是Marshal.load。

答案 1 :(得分:0)

看看Ruby的Marshal Class

来自文档:

  

编组库转换   将Ruby对象集合成一个   字节流,允许它们   存储在当前活动的外部   脚本。随后可以是这个数据   阅读和原始对象   重构。编组数据有   存储的主要和次要版本号   以及对象信息。

当然这是一条双向的街道,你只能使用非Marshalled,Marshaled红宝石物体。

答案 2 :(得分:0)

如果是XML,那就是Hash.from_xml方法。