- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
"superman"); echo serialize($value); ?> 序列化: a:2:{s:2:"id";i:42;s-6ren">
我在 php 中有一个这种格式的数组:
<?php
$value = array("id" => 42, "user" => "superman");
echo serialize($value);
?>
序列化:
a:2:{s:2:"id";i:42;s:4:"user";s:8:"superman";}
我将其接收到 java 中的 String
中。我该怎么做才能在 java 中反序列化它?我知道 Java 中的 implements Serializable
但在这种情况下不起作用。
我想以这种格式创建一个对象:
import java.io.Serializable;
public class Serial implements Serializable{
private int mId;
private String mUser;
public Serial(int mId, String mUser) {
super();
this.mId = mId;
this.mUser = mUser;
}
public int getId() {
return mId;
}
public void setId(int id) {
this.mId = id;
}
public String getUser() {
return mUser;
}
public void setUser(String user) {
this.mUser = user;
}
}
之后,我想再次创建从 Java 对象序列化的 String
,以便在 PHP 中进行反序列化;
感谢您的帮助。
最佳答案
你不能用另一种语言本地读取一种语言的序列化对象(每种语言都有自己的序列化协议(protocol)/格式,不能保证它们可以读取另一种格式),Java 序列化对象被序列化为二进制格式,并且PHP 您提供的文本格式。
您可以使用诸如 Google's protocol buffers 之类的库,它们不正式支持 PHP,但是有 3rd party libraries 为 PHP 提供 Protocol Buffer 支持。
Protocol buffers are Google's language-neutral, platform-neutral, extensible mechanism for serializing structured data – think XML, but smaller, faster, and simpler. You define how you want your data to be structured once, then you can use special generated source code to easily write and read your structured data to and from a variety of data streams and using a variety of languages – Java, C++, or Python.
如果您不喜欢它,您将需要开发自己的协议(protocol)来将 PHP 序列化对象读入 Java 对象,您可以使用修改后的 JSON 库来完成此操作,因为我不相信 s:2:"id";
来自您的示例序列化对象的是有效的 JSON。存在用于使用 Java 执行此操作的 library,但是 PHP 序列化格式并不“安全”,因为它可以包含空值,因此我建议不要这样做。
关于java - 序列化 PHP => 反序列化 JAVA/Serialize for php in string format,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18104274/
目前我有以下内容: $.ajax({ type: 'POST', url: this.action, data: $(this).serialize(), }); 这工作正常,
目前我有以下内容: $.ajax({ type: 'POST', url: this.action, data: $(this).serialize(), }); 这很好用,但
我知道什么是序列化,但对我来说,这是一个无法描述其含义的术语。 为什么我们称序列化为序列化?将对象转换为原始数据(以及膨胀/反序列化,就此而言)有什么意义?谁创造了这个术语,为什么? 最佳答案 它可能
是否可以将数据结构(使用 boost::serialization)序列化为字符串变量或缓冲区(而不是磁盘上的文件)? 最佳答案 当然,让它在stringstream上完成工作。 关于serializ
假设我有以下类型定义,它依赖于常量来指示记录成员的向量长度: type point_t is record x: std_logic_vector(X_WIDTH-1 downto 0);
我尝试序列化一个向量和一个 map 容器,并通过 cout 输出它们的值。然而,我很难理解boost输出的含义。我的代码如下所示: #include #include #include #
我正在尝试将序列化功能添加到我的 Rust 结构之一。这是一个日历事件,看起来像这样: #[derive(PartialEq, Clone, Encodable, Decodable)] pub st
正如主题所暗示的那样,在将大量数据序列化到文件时,我遇到了 boost::serialization 的一个小问题。问题在于应用程序的序列化部分的内存占用大约是被序列化对象内存的 3 到 3.5 倍。
在搜索解决方案时,我得到了 this和 this但我不清楚这个概念,所以无法实现:(。当我尝试更新数据库中的值(特别是日期时间对象)时会发生此错误。以下是我正在使用的代码:- var upd
我收到以下错误, 模板对象不可迭代 def get_AJAX(request, id): data = serializers.serialize("json", Template.objec
由于方便,我正在考虑对我的所有数据 i/o 使用 serialize() 和 deserialize()。但是,我不想在 Julia 更新中被不可读的文件所困扰。 serialize() 和 dese
我有一个通常使用 JMS Serializer 包序列化的实体。我必须在序列化中添加一些不驻留在实体本身中但通过一些数据库查询收集的字段。 我的想法是创建一个自定义对象,用实体字段填充字段并添加自定义
我正在尝试使用 XmlParser 从 xml 文件中删除和添加标签。以下是我在使用“grails run-app”命令部署的 grails 应用程序中执行时运行良好的代码块: def parser
我正在使用 MRUnit 测试 MultipleOutputs。测试用例失败并显示以下消息。 java.lang.ClassCastException: org.apache.hadoop.io.se
本文整理了Java中com.jme3.network.serializing.serializers.ZIPSerializer类的一些代码示例,展示了ZIPSerializer类的具体用法。这些代码
我有一个处理草图,需要与 USB 设备建立 2 个连接。我无法提前判断哪个设备是 USB0 哪个是 USB1。 (不是我至少知道) 其中一台设备发出问候语,另一台设备根本不回答。因此,我编写了带有简单
我在下面有这个代码,我来自 this forum我遵循了。它对我不起作用,但他们声称代码很好。我已经尝试了几种字符串比较方法,例如 string.equals(string)和标准==运营商,仍然没有
当我尝试调用特定的 Web 服务方法时,我收到“Unspecified error”。使用 XMLSpy 我发现参数对象还没有被序列化。 在生成的序列化程序源中,我注意到以下几行: if (!need
在 Rust 中编写 NEAR 智能合约,我的编译器似乎要求通过 API 发送的对象具有 Serialize trait,以及存储在区块链中的对象 BorshSerialize和 BorshDeser
我正在尝试 Kotlin 序列化。按照说明进行设置后,我得到了 Unresolved reference: serializer使用此代码构建错误: val serializer : KSeriali
我是一名优秀的程序员,十分优秀!