草庐IT

Pickle反序列化

全部标签

java - GSON:反序列化时删除不必要的父对象

我正在尝试使用GSON反序列化JSON数组。我所有的嵌套对象都嵌入到一个“嵌入式”对象中。{"Book":{"name":"Book1","published":1999,"links":{"url":"www.book1.com"},"embedded":{"Author":{"name":"JohnDoe","links":{"url":"www.johndoe.com"}}}}}我也可能遇到这样的情况:{"Book":{"name":"Book1","published":1999,"links":{"url":"www.book1.com"},"embedded":{"Publ

使用 Kryo 序列化对象时出现 java.lang.StackOverflowError

我有一个从服务器发送到客户端的类图对象,其中包含具有adjacencyLists的nodes。我有类似的东西:Clearingc1=newClearing(1,134,151);Clearingc6=newClearing(6,250,88);c1.adjacentByPath.add(newPath(1,c6));c6.adjacentByPath.add(newPath(1,c1));每次我发送包含这些清算的对象时,我都会收到以下错误:Exceptioninthread"Server"java.lang.StackOverflowErroratcom.esotericsoftwar

java - 反序列化无状态 EJB 时是否应用 @Resource 注释?

当EJB被反序列化时,是否在方法上应用了@Resource注释?我有一个由容器保留的EJB计时器,我想知道在反序列化EJB时是否会再次注入(inject)transientTimerService(它不可序列化)。 最佳答案 也许这篇文章有帮助:无状态sessionBean:无状态sessionEJB在创建时注入(inject),并在其整个生命周期内保留其资源。StatefulSessionBean:依赖注入(inject)似乎只发生在创建时。无论如何,在激活之后,将调用@PostActivate回调处理程序,您可以在其中恢复tra

java - Jackson JSON 没有正确序列化 Joda DateTime

我在Order类中有一个JodaDateTime:publicclassOrder{privateDateTimecreationTime;...}我已经按如下方式初始化了我的映射器:mapper.configure(SerializationConfig.Feature.WRITE_DATES_AS_TIMESTAMPS,false);当我序列化这个类时,我希望看到creationTime以ISO-8601格式序列化如下{"creationTime":"2011-01-01T09:00:00.000-04:00"}这在我的单元测试中运行良好。但是,在我的Web应用程序中,完全相同的代

java - 使用 Jackson 序列化根原始对象

我面临以下问题。当Jackson序列化器传递一个包装原语进行序列化时,这个原语将按原样序列化,例如:objectMapper=newObjectMapper();StringWriterw=newStringWriter();objectMapper.writeValue(w,Integer.valueOf(10));System.out.println(w.toString());产生10作为输出。但是10不是有效的JSON(根据jsonlint),应该用方括号括起来([10],所以它将是一个单元素数组)或大括号({value:10},因此它将是一个具有虚拟属性的对象)。该问题影响数

java - Json 使用 Jackson 库序列化 JDK 动态代理

我正在尝试使用Jackson库序列化Java动态代理,但出现此错误:publicinterfaceIPlanet{StringgetName();}PlanetimplementsIPlanet{privateStringname;publicStringgetName(){returnname;}publicStringsetName(StringiName){name=iName;}}IPlanetip=ObjectsUtil.getProxy(IPlanet.class,p);ObjectMappermapper=newObjectMapper();mapper.writeVal

java - 如何使用 JACKSON 进行自定义序列化/反序列化?

我正在尝试将以下gson序列化转换为JACKSON序列化。请让我知道我需要更改什么才能使其适用于JACKSONpublicclassAbstractElementAdapterimplementsJsonSerializer,JsonDeserializer{@OverridepublicJsonElementserialize(AbstractElementsrc,TypetypeOfSrc,JsonSerializationContextcontext){JsonObjectresult=newJsonObject();JsonObjectproperties=context.se

java - Objectify List<Ref<T>> 未由 Google App Engine 端点序列化

您好,有两个相关的实体:客户和汽车。每个客户可以拥有多辆汽车这是实体的汇总View:publicclassCustomer{//InnerclassesforpartialloadspublicstaticclassNoCars{}@IdprotectedStringid;privateStringfullName;@Load(unless=NoCars.class)privateList>cars;}publicclassCar{@IdprivateLongid;privateStringmakeAndModel;privateStringplateNumber;}这是一种从数据存储

java - 如何告诉 jackson 将 "null"字符串反序列化为空文字?

我有一个web服务,它将“null”打印为任何属性的字符串,而不是null文字。它对几乎所有数据类型(字符串或日期)都这样做。例如,在理想情况下它返回{"item":{"title":"Sometitle","expires":"2014-11-0200:00:00"}}但有时它返回:{"item":{"title":"null","expires":"2014-11-0200:00:00"}}这使得title属性值为“null”而不是将其设置为null。或者有时这样:{"item":{"title":"Sometitle","expires":"null"}}这使得反序列化失败,因为

java - 如何用我自己的 readObject 调用替换 Java 的默认反序列化?

有人认为使用Java的默认序列化方法将数据库中的对象存储在blob列中是个好主意。这些对象的结构由另一个组控制,他们将字段类型从BigDecimal更改为Long,但我们数据库中的数据保持不变。现在我们无法读回对象,因为它会导致ClassCastExceptions。我试图通过编写自己的readObject方法来覆盖它,但这会抛出StreamCorruptedException,因为默认的writeObject方法写入了什么。如何使我的readObject调用表现得像Java的默认调用?我可以跳过一定数量的字节来获取我的数据吗? 最佳答案