【问题标题】:Groovy equivalent for php's unserializephp 反序列化的 Groovy 等效项
【发布时间】:2014-04-17 05:01:59
【问题描述】:

我正在处理来自 Wordpress 数据库的序列化数据。使用 PHP 序列化函数创建的字符串如下所示:

a:4:{s:6:"重量";s:2:"15";s:6:"长度";s:1:"8";s:5:"宽度";s: 1:"8";s:6:"身高";s:2:"17";}

有没有办法在 Groovy 中反序列化?还是这不是标准化序列化的产物?

谢谢!

【问题讨论】:

  • 它看起来类似于 JSON,但绝对不是。不知道怎么处理。

标签: serialization groovy


【解决方案1】:

这是一个使用pherialize library的示例

@GrabResolver( name='Ailis', root='http://nexus.ailis.de/content/groups/public' )
@Grab( 'de.ailis.pherialize:pherialize:1.2.1' )
import de.ailis.pherialize.*

def phpValue = 'a:4:{s:6:"weight";s:2:"15";s:6:"length";s:1:"8";s:5:"width";s:1:"8";s:6:"height";s:2:"17";}'

def groovyMap = Pherialize.unserialize( phpValue ).toArray().collectEntries { k, v ->
    [ k.toType( k.type ), v.toType( v.type ) ]
}

assert groovyMap == [ weight:'15', length:'8', width:'8', height:'17' ]

如果可能的话,我建议你在两者之间以他们都说的格式(json?)共享数据

【讨论】:

    【解决方案2】:

    was 已经有类似的问题了。似乎有用java实现的PHP序列化解析器。每个 java 库都可以与 groovy 一起使用,所以解决这个问题应该不是问题。在这些库中可以找到here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-30
      • 2011-02-02
      • 1970-01-01
      • 2017-08-02
      相关资源
      最近更新 更多