当前位置:  开发笔记 > 编程语言 > 正文

在Java中反序列化一个序列化的php对象

如何解决《在Java中反序列化一个序列化的php对象》经验,为你挑选了5个好方法。

有没有人知道是否有可能,实际上如果已经完成,在PHP中序列化一个对象并在Java中反序列化它(java-php通信).也许需要一个适配器.

你怎么看?

谢谢



1> troelskn..:

serialized-php-parser一个Java实现可以解析php序列化的对象.一般来说,如果你有选择,我不建议使用php-serialized作为交换格式,因为它不是ascii-safe(它包含空字节).改为使用xml或json等格式.如果您需要一些类型信息,xmlrpc是一个不错的选择.它有很好的php和Java实现.



2> cletus..:

PHP和Java都使用自己的(明显不同的)序列化方案.但是,您可以使用可以读写的交换格式.

最明显的两个例子是XML和JSON.

还有其他一些如Google Protocol Buffers.



3> kayahr..:

另一个使用PHP序列化格式的Java项目是Pherialize.

假设您正在序列化这样的数组:

array(3) {
  [0]=>
  string(8) "A string"
  [1]=>
  int(12345)
  [2]=>
  bool(true)
}

然后你可以用Pherialize在Java中反序列化它,如下所示:

MixedArray list = Pherialize.unserialize(data).toArray();
System.out.println("Item 1: " + list.getString(0));
System.out.println("Item 2: " + list.getInteger(1));
System.out.println("Item 3: " + list.getBoolean(2));



4> Michael Borg..:

从理论上讲,这当然是可能的.毕竟它只是字节,可以解析它们.当然,反序列化的对象只包含数据,而不包含任何PHP方法.如果需要,您必须将行为重写为直接与PHP类对应的Java类.

在实践中,主要问题似乎是PHP序列化格式似乎没有正式指定 - 至少没有链接到手册中的规范.

因此,您可能需要深入了解代码以了解格式.

总而言之,使用像XML序列化这样的东西听起来会更容易和更稳定 - 我确信这两种语言都有可以实现这一目标的库.



5> zimbu668..:

该JSON格式将是一个良好的开端.有Java,PHP和许多其他语言的实现.

虽然最初基于javascript对象文字表示法,但JSON证明了在所有类型的系统之间轻量级数据传输的便利性.

推荐阅读
黄晓敏3023
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有