草庐IT

SERIALIZATION

全部标签

java - Jackson:使用嵌套对象将对象序列化为 JSON,将子字段合并到所属类中

假设我有如下所示的Java类:publicclassA{publicStringname;publicBb;}publicclassB{publicintfoo;publicStringbar;}我想将A的实例序列化为JSON。我将使用Jackson中的ObjectMapper类:Aa=newA(...);Stringjson=newObjectMapper().writeValueAsString(a);使用此代码,我的JSON将如下所示:{"name":"MyExample","b":{"foo":1,"bar":"something"}}相反,我想注释我的Java类,以便生成的J

java - 使用 Jackson 和 JavaTimeModule 序列化 Java 8 ZonedDateTime

我正在尝试使用Jackson将对象从JSON序列化和反序列化(编码/解码)。其中一些对象具有Java8LocalDate和ZonedDateTime。我在这里读到最好的选择是使用jackson-datatype-jsr310serialize/deserializejava8java.timewithJacksonJSONmapper但是,当我尝试使用它时:ObjectMappermapper=newObjectMapper();mapper.registerModule(newJavaTimeModule());我收到这个错误:java.lang.IllegalAccessError

java - Java中的非静态内部类和序列化有什么问题

今天早上,在尝试诊断Web应用程序的性能问题时,我的老板和我就此进行了长时间但最终毫无结果的讨论。我们并没有真正得出任何结论。我认为我们认为Serializable非静态内部类存在问题是正确的,但我们不确定到底是什么问题或究竟要避免什么(我们推断我们不能总是简单地避免它)。任何人都可以提出任何避免在这个问题上遇到麻烦的指导方针吗? 最佳答案 内部类持有对其外部类的引用,因此尝试序列化内部类也会序列化外部类——以及外部类可能持有的任何其他对象。这可能会导致一个巨大的对象图。或者它可能会失败,如果外部具有无法序列化的状态(例如Input

java - 如何使用 Web 服务传递对象等复杂类型?

这听起来像是一个简单的问题,但作为Webservies的新手,这是我第一次使用它,所以我提出了我的疑问。问:如何使用Web服务传递对象或复杂类型?我创建了一个简单的web服务并传递了字符串和整数类型,但我不确定如何使用web服务传递对象,因此非常感谢任何指导。谢谢。 最佳答案 您只需在服务端序列化对象(制作文本)并在接收端反序列化(再次制作对象)。多年来,SOAP一直是这方面的标准,但如今JSON变得更受欢迎,因为它的开销比SOAP少得多。如果使用SOAP和Java,您可以尝试使用Google提供的GSON,它提供了一个非常易于使用

java - Kryo 序列化程序在底层 Scala 类 WrappedArray 上导致异常

两个问题,一般性问题的答案将指导我制作一个MVCE的最小限度。1)我如何知道预先注册WrappedArray(以及我可能使用的Scala中的所有其他类)?必须使用Kryo从库中注册类(class)是否正常?和具体的:2)我该如何解决这个问题?(愿意承认,如果在这里反射(reflect)一个错误的错误,我可能还有其他奇怪的事情发生,所以不要试图重现这个错误)详情使用我们与遗传学和统计相关的客户类在Spark1.4.1和Scala2.11.5上测试Java中的Spark程序,SparkConf上的设置如下://forkyroserializeritwantstoregisterallcla

带有 transient 字段的 Java 序列化

对于Java序列化,我了解到当一个字段被标记为transient时,它不会被序列化。因此,当对象被反序列化时,设置为短暂的?它们是否设置为构造函数中定义的值? 最佳答案 它们被设置为该类型的默认值:零、假或空。 关于带有transient字段的Java序列化,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/9694755/

java - 反序列化 Gson 中的通用列表

我想写一个泛型函数,它用Gson反序列化一个泛型类型列表这是代码:privateListGetListFromFile(Stringfilename){//ReadtextfileBufferedReaderreader;Stringdata="";try{reader=newBufferedReader(newFileReader(filename));data=reader.readLine();reader.close();}catch(FileNotFoundExceptionex){}catch(IOExceptionex){}if(data==null){ListSpiel

Java 9 Compact String Serialization-反序列化&数据传输

在Java9中,String的内部表示已从字符数组更改为字节数组。假设我在运行Java9的系统上序列化我的字符串数据,然后尝试在Java8系统上反序列化它。还要考虑反之亦然的情况。我能想到的另一种情况是使用RMI或JMS在Java8和Java9系统之间传输String数据。这些场景怎么可能奏效?是否所有处理String的方法都已升级以处理此类情况? 最佳答案 虽然String在内存中的表示确实发生了变化,但它的Serializable表示没有。您是否真的尝试过在Java9中序列化String并在Java8中反序列化它?我认为您不会遇

java - 如何使用 Jackson 注释序列化此 JSON?

我有以下JSON:{fields:{"foo":"foovalue","bar":"barvalue"}}我写了一个pojo如下:publicclassMyPojo{@JsonProperty("fields")privateListfields;staticclassField{@JsonProperty("foo")privateStringfoo;@JsonProperty("bar")privateStringbar;//Gettersandsettersforthose2}这显然失败了,因为我的json字段“fields”是一个hashmap,而不是一个列表。我的问题是:是否

java - 将原始二进制数据与 XML 一起存储的最标准 Java 方法是什么?

我需要将大量二进制数据存储到一个文件中,但我还想以XML格式读取/写入该文件的header。是的,我可以将二进制数据存储到一些XML值中,然后使用base64编码对其进行序列化。但这不会节省空间。我能否以或多或少的标准化方式“混合”XML数据和原始二进制数据?我在考虑两个选择:有没有办法使用JAXB来做到这一点?或者有没有办法获取一些现有的XML数据并向其附加二进制数据,从而识别边界?我正在寻找的概念不是以某种方式被/用于SOAP吗?或者在电子邮件标准中使用它?(二进制附件的分离)我想要实现的计划:[meta-info-about-boundary][XML-data][boundar