Tag: 序列化

使用类名作为JSON Jackson序列化的根密钥

假设我有一个pojo: import org.codehaus.jackson.map.*; public class MyPojo { int id; public int getId() { return this.id; } public void setId(int id) { this.id = id; } public static void main(String[] args) throws Exception { MyPojo mp = new MyPojo(); mp.setId(4); ObjectMapper mapper = new ObjectMapper(); mapper.configure(SerializationConfig.Feature.WRAP_ROOT_VALUE, true); System.out.println(mapper.getSerializationConfig().isEnabled(SerializationConfig.Feature.WRAP_ROOT_VALUE)); System.out.println(mapper.writeValueAsString(mp)); } } 当我使用Jackson ObjectMapper进行序列化时,我得到了 true {“id”:4} 但我想要 […]

jackson没有反序列化它已序列化的通用列表

当使用Apache Jersey与Jackson进行JSON序列化时(在服务器和客户端上),我在反序列化通用List时遇到了问题。 我生成的JSON如下,“data”中的所有3个类都实现了“CheckStatusDetail”: { “errorCode” : 0, “errorMessage” : null, “type” : “array”, “data” : [ { “@class” : “com.rrr.base.status.module.dto.DiscoveryAgentCheckStatusDetail”, “serverInfo” : { “@class” : “com.rrr.base.util.discovery.config.xml.XMLServerInfo”, “name” : “java”, “location” : “THEO”, “description” : “sddgs”, “group” : “java”, “aliases” : [ “mercury” ] } }, { “@class” : “com.rrr.base.status.module.dto.MongoDBCheckStatusDetail”, “addresses” : [ “localhost:27017” ], “version” […]

java.io.StreamCorruptedException:无效的流标题:7371007E

我有一个客户端服务器应用程序使用对象进行通信 当我只从客户端向服务器发送一个对象时,一切正常。 当我尝试在同一个流上一个接一个地发送几个对象时,我得到了 StreamCorruptedException. 有人可以指导我这个错误的原因吗? 客户端写方法 private SecMessage[] send(SecMessage[] msgs) { SecMessage result[]=new SecMessage[msgs.length]; Socket s=null; ObjectOutputStream objOut =null; ObjectInputStream objIn=null; try { s=new Socket(“localhost”,12345); objOut=new ObjectOutputStream( s.getOutputStream()); for (SecMessage msg : msgs) { objOut.writeObject(msg); } objOut.flush(); objIn=new ObjectInputStream(s.getInputStream()); for (int i=0;i<result.length;i++) result[i]=(SecMessage)objIn.readObject(); } catch(java.io.IOException e) { alert(IO_ERROR_MSG+"\n"+e.getMessage()); } catch (ClassNotFoundException e) { alert(INTERNAL_ERROR+"\n"+e.getMessage()); } […]

如何在Java中序列化非序列化?

如何序列化不实现Serializable的对象? 我无法将其标记为Serializable,因为该类来自第三方库。

如何将二进制数据转换为字符串并返回Java?

我在一个文件中有二进制数据,我可以读入一个字节数组并处理没有问题。 现在,我需要通过网络连接将部分数据作为XML文档中的元素发送。 我的问题是,当我将数据从字节数组转换为String并返回到字节数组时,数据就会被破坏。 我已经在一台机器上对此进行了测试,以将问题与String转换隔离开来,所以我现在知道它不会被XML解析器或网络传输损坏。 我现在得到的是 byte[] buffer = …; // read from file // a few lines that prove I can process the data successfully String element = new String(buffer); byte[] newBuffer = element.getBytes(); // a few lines that try to process newBuffer and fail because it is not the same data anymore 有谁知道如何将二进制转换为String并返回而不会丢失数据? 回答:谢谢Sam。 […]

反转(解析输出)Arrays.toString(int )

在JDK或Jakarta Commons(或其他任何地方)中是否存在可以解析Arrays.toString输出的方法,至少对于整数数组? int[] i = fromString(Arrays.toString(new int[] { 1, 2, 3} );

如何使用Jersey REST序列化Java基元

在我的应用程序中,我使用Jersey REST来序列化复杂对象。 这很好用。 但是有一些方法只返回一个int或boolean。 泽西岛无法处理原始类型(据我所知),可能是因为它们没有注释,而泽西没有默认注释。 我通过创建像RestBoolean或RestInteger这样的复杂类型来解决这个问题,它只包含一个int或boolean值并具有相应的注释。 有没有比编写这些容器对象更简单的方法?

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

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

Gson序列化字段仅在非空或非空时

我有需要将java对象转换为json。 我正在使用Gson,但我需要转换器只序列化非null或非空值。 例如: //my java object looks like class TestObject{ String test1; String test2; OtherObject otherObject = new OtherObject(); } 现在我的Gson实例将此对象转换为json看起来像 Gson gson = new Gson(); TestObject obj = new TestObject(); obj.test1 = “test1”; obj.test2 = “”; String jsonStr = gson.toJson(obj); println jsonStr; 在上面的印刷品中,结果是 {“test1″:”test1”, “test2″:””, “otherObject”:{}} 在这里,我只想要结果 {“test1″:”test1”} 由于test2为空且otherObject为空,我不希望它们被序列化为json数据。 顺便说一句,我正在使用Groovy / Grails,所以如果有任何插件,这将是好的,如果没有任何建议自定义gson序列化类将是好的。

使Java运行时忽略serialVersionUIDs?

我必须处理大量已编译的Java类,这些类没有明确指定serialVersionUID。 因为它们的UID是由编译器任意生成的,所以许多需要序列化和反序列化的类最终导致exception,即使实际的类定义匹配。 (当然,这是所有预期的行为。) 我回过头来修复所有这些第三方代码是不切实际的。 因此,我的问题是:有没有办法让Java运行时忽略 serialVersionUID中的差异,并且只有在结构存在实际差异时才能反序列化?