草庐IT

Pickle反序列化

全部标签

java - 如何为 Jackson 反序列化器提供类型提示?

我正在使用Jackson作为一种工具来声明一些我无法注释(或根本无法修改)其类的对象。其中一个类有一个用于无类型列表的setter和getter。这是经过清理的版本:publicclassFamily{privateListmembers;publicListgetMembers(){returnmembers;}publicvoidsetMembers(Listmembers){this.members=members;}//...many,manyotherproperties}publicclassMember{privateStringname;publicStringgetN

Java序列化和反序列化

我有一个对象如下:publicclassRecordsimplementsjava.io.Serializable{privateintcId;privateintpId;privateintvlaue;privateinttag;publicRecords(intc,intp,intv,intt){this.cId=c;this.pId=p;this.value=v;this.tag=t;}}我收集了很多数据,像上面的类一样构造了对象,并将它们序列化到磁盘。我忘记在类文件中包含的转储内容是访问每个对象的值的方法。例如,访问特定对象的cId值。我修改了类定义以添加此类方法,但随后我无法

java - 在java中反序列化一个单例

我正在学习EffectiveJava,并遇到了这个例子。classElvisimplementsSerializable{publicstaticfinalElvisinst=newElvis();privateElvis(){System.out.println("Inelvisconstructor");}publicstaticElvisgetInstance(){returninst;}}按照书上的说法,反序列化的时候应该构造一个新的ELVIS对象,但是我看到反序列化的时候没有调用构造函数?这是我的序列化和反序列化代码。FileOutputStreamfos=newFileOu

java - 如何序列化 Mimemessage 实例?

我一直在尝试序列化一个MimeMessage实例,但正如我在网上看到的那样,这是不可能的。我想通过序列化MimeMessage实例来实现的是,我想散列该实例并将其随邮件本身一起发送。到目前为止我编写的代码是这样的:MimeMessagemessage=newMimeMessage(session);//...settingupcontentofMimeMessageObjectOutputStreamoos=newObjectOutputStream(newFileOutputStream(newFile("object.ser")));oos.writeObject(message)

java - Jackson - 反序列化嵌套的 JSON

我有一个JSON字符串,格式如下:{"response":{"execution_status":"ready","report":{"cache_hit":true,"created_on":"2013-07-2908:42:42","fact_cache_error":null,"fact_cache_hit":true,"header_info":null,"name":null,"report_size":"5871","row_count":"33","url":"report-download?id=278641c223bc4e4d63df9e83d8fcb4e6"},"s

java - 如何安全地序列化 lambda?

虽然itispossibletoserializealambdainJava8,它是stronglydiscouraged;甚至serializinginnerclassesisdiscouraged.给出的原因是lambda可能无法在另一个JRE上正确反序列化。然而,这是否意味着有一种安全序列化lambda的方法?例如,假设我定义一个类是这样的:publicclassMyClass{privateStringvalue;privatePredicatevalidateValue;publicMyClass(Stringvalue,Predicatevalidate){this.val

java - Jackson 2.1 多态反序列化 : How to populate type field on pojo?

我正在从REST服务中提取类别和项目树。类别具有包含类别和/或项目列表的“子”属性。它们的类型在“种类”字段中指定。Jackson的多态类型处理非常好,一切都按预期工作,除了一个小问题:“kind”字段本身没有填充。有没有一种简单的方法可以将这些数据放到pojos上?我希望不必编写自定义反序列化程序。这是类别和项目的基类。这两个子类添加了几个标量场,不是很有趣。@JsonIgnoreProperties(ignoreUnknown=true)@JsonTypeInfo(use=JsonTypeInfo.Id.NAME,include=JsonTypeInfo.As.PROPERTY,p

java - @JsonInclude(Include.NON_NULL) 不工作/ jackson 序列化空值

我已经在类/pojo上放置了注释并配置了映射器,但它仍然序列化null值我正在使用Hibernate4.3.7Final和Jackson2.4.4。这些集合是延迟加载Pojo:删除了getter和setter@JsonInclude(Include.NON_NULL)@Entity@TablepublicclassSchool{@Id@GeneratedValueprivateintid;@OneToMany(cascade=CascadeType.ALL,fetch=FetchType.LAZY)privateListstudents;@OneToMany(cascade=Casca

java - 如何使用 DOM 级别 3 序列化 API 生成 DOCTYPE 声明?

我有一个从头开始创建的DOM文档,我需要将其序列化为输出流。我正在使用DOM级别3序列化API,如以下示例所示:OutputStreamout;Documentdoc;DOMImplementationLSdomImplementation=(DOMImplementationLS)DocumentBuilderFactory.newInstance().newDocumentBuilder().getDOMImplementation();LSSerializerlsSerializer=domImplementation.createLSSerializer();LSOutputl

java - 你能让一个对象在运行时可序列化吗?

正如标题所说,有没有办法检查一个对象是否可序列化,如果不是,则在运行时使其如此? 最佳答案 简短回答-否。更长的答案-是的,使用字节码操作,例如使用asm。但是你真的应该考虑是否需要这样做。序列化是个正经事(EffectiveJava有一整章序列化)顺便说一句,二进制序列化有替代方法,不需要对象实现Serializble(正如Jacob在评论中指出的那样):XML-java.beans.XMLEncoder.encode(..)是ObjectOutputStream的xml版本JSON-Jacskon、Gson等框架让您只需一行就可