我正在处理来自Wordpress数据库的序列化数据。使用PHP序列化函数创建的字符串看起来像这样:
一个:4:{S:6:"重量&#34 ;; S:2:" 15&#34 ;; S:6:"长度&#34 ;; S:1 :" 8&#34 ;; S:5:"宽度&#34 ;; S:1:" 8&#34 ;; S:6:"高度&#34 ;;小号:2:" 17&#34 ;;}
有没有办法在Groovy中反序列化?或者这不是标准化序列化的产物?
谢谢!
答案 0 :(得分:3)
以下是使用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?)分享两者之间的数据。
答案 1 :(得分:1)