草庐IT

Serialization

全部标签

java - Spring Boot 忽略@JsonDeserialize 和@JsonSerialize

我有一个带有RESTful端点的SpringBoot应用程序,我想为joda-time添加自定义序列化程序。但我无法让应用程序默认Jacksonserailzier识别我的自定义序列。我使用@RepositoryRestResource创建了RESTFul端点@RepositoryRestResource(collectionResourceRel="x",path="x")publicinterfaceXRepositoryextendsPagingAndSortingRepository{}然后我有一个GET调用来返回所有对象X:http://localhost:8181/x这是我

java - readObject() 与 readResolve() 恢复 transient 字段

根据Serializablejavadoc,readResolve()用于替换从流中读取的对象。但是肯定(?)您没有替换该对象,所以可以使用它来恢复transient字段并返回原始引用,如下所示:privateObjectreadResolve(){transientField=something;returnthis;}相对于使用readObject():privatevoidreadObject(ObjectInputStreams){s.defaultReadObject();transientField=something;}当仅用于恢复transient场时,是否有任何理由选

java - 将 float 从 .NET 发送到 Java 并返回的最佳方法

我正在编写一个.NET应用程序,它将对Java应用程序进行RPC调用(通过消息队列)。双向发送的数据将是大型float数组。序列化它们以通过网络发送它们的最佳方法是什么?我想要比文本更紧凑的东西,但与体系结构无关,因为服务器可能不是x86机器。可以根据需要更改Java应用程序。 最佳答案 Java数字基元实际上是按网络顺序存储(在JVM中)和写入(通过jnava.io.DataOutputStream和java.nio.ByteBuffer)和float点值是IEEE标准。它们可以直接与C#/.NET互换。好吧,如果.NET提供网络

java - Java 使用哪种序列化格式?

在RMI程序中,我想实现Serializable接口(interface)来序列化从服务器接收的对象。Java6是否使用内置的序列化格式?我想知道序列化格式是否有特定名称。 最佳答案 是的,Java有自己的binaryserializationformat.而且我认为它除了Java序列化[格式|协议(protocol)]。 关于java-Java使用哪种序列化格式?,我们在StackOverflow上找到一个类似的问题: https://stackoverfl

java - 我应该如何序列化域模型快照以进行事件溯源

我们正在使用LMAXDisruptor构建应用程序.使用EventSourcing时,您通常希望保留域模型的定期快照(有些人将其称为MemoryImage模式)。我需要一个比我们目前使用的更好的解决方案来在拍摄快照时序列化我们的领域模型。我希望能够以可读的格式“pretty-print”此快照以进行调试,并且我希望简化快照架构迁移。目前,我们正在使用Googles'ProtocolBuffers将我们的域模型序列化为一个文件。我们选择了这个解决方案,因为ProtocolBuffer比XML/JSON更紧凑,并且使用紧凑的二进制格式似乎是序列化大型Java域模型的好主意。问题是,Prot

c# - C# 可以反序列化一个序列化的简单 java 对象吗?

假设java类的所有字段都是java原语,如果这样的对象已经被序列化,它能否被C#成功反序列化为“等效”C#类的实例?是否可以反过来-C#到java?我意识到有许多语言不可知论格式,例如XML可以用来完成工作。我更感兴趣的是使用原生序列化数据是否可行。 最佳答案 序列化流的格式可用。我认为您可以轻松地编写一个类来解析字节流并在C#中创建所需的类。指定序列化格式的文章:http://www.javaworld.com/community/node/2915 关于c#-C#可以反序列化一个序

java - 无法从字符串值构造 java.util.Date 的实例 - 不是有效的表示

抱歉,这个问题似乎是多余的,但我确实有很多选择,尽管我努力阅读了很多主题,但我还是无法理解该怎么做。我有一个java应用程序,它的工作是:从SOAPWS(XML)获取数据,做一些逻辑(传入的交货日期将变成datebl)最后将其发送到RESTWS(JSON格式),这将更新Oracle表计划如下:SOAPWS----deliverydate---->JAVAAPP(logic)----datebl---->RESTWSJAVAAPP中使用的Jar有jackson-core-asl-1.9.13.jar和jackson-mapper-asl-1.9.13.jar等。我遇到的问题是在处理日期时

java - 为什么枚举单例是序列化安全的?

在内部如何在Enum中进行序列化/反序列化?jvm如何在(序列化)之前和之后(反序列化)生成相同的哈希码? 最佳答案 序列化对enum进行特殊处理。基本上,它只存储对其class的引用和常量的名称。反序列化后,此信息用于查找enum类型的现有运行时对象。因此,如果您在同一运行时反序列化enum常量,您将获得与序列化相同的运行时实例。但是,在另一个JVM中反序列化时,哈希码可能会有所不同。但是具有相同的哈希码并不是单例的必需标准。重要的一点是永远不要有该类的另一个实例,这是有保证的,因为序列化实现永远不会创建enum类型的实例,而只会

java - jackson : custom collection serialization to JSON

我正在尝试使用一个属性对类MyRootClass进行json序列化,该属性是第二个类MyClass的元素集合:publicclassMyRootClass{privateListlist=newArrayList();//getter/setter}publicclassMyClassimplementsMyInterface{privateStringvalue="test";//getter/setter}以下代码:MyRootClassroot=newMyRootClass();root.getList().add(newMyClass());ObjectMappermapper

java - 如何发现 Java 反序列化问题?

我希望能够发现Java代码中的反序列化问题。我应该寻找什么?例如,如何确定某些Java代码是否试图利用“javacalendarbug”?请注意,我不是Java程序员,但我理解序列化和OOP背后的概念。我正在尝试实现一些安全检查(类似于编译器警告工具)。编辑:根据评论,我想稍微更改一下问题:我认为所有分析的代码都是“不受信任的”,有没有办法对潜在危险进行评级?我的意思是,关于反序列化错误,我可以说代码A比B更危险吗?我应该寻找什么? 最佳答案 首先,您需要了解您的上下文以确定安全威胁。(当我谈论“信任”时,我几乎没有走捷径。我是在故