jjzjj

deserialization

全部标签

java - 如何在没有类文件的情况下从序列化的 Java 对象中检索对象状态

我有一个包含Java序列化对象(值对象)的二进制文件,但我无权访问为创建这些对象而序列化的类。没有类文件,JVM不允许我使用objectInputStreamInstance.readObject()读取对象并正确地抛出java.lang.ClassNotFoundException。是否有一个库可以帮助提取XML或其他标准化格式的数据?例如,如果下面的Person类被序列化并存储在一个文件中,我想从中提取数据:类定义classPersonimplementsSerializable{intage;Stringname;publicPerson(intage,intname){this

Java "Jackson"JsonMappingException : Can not deserialize instance of float out of FIELD_NAME token

与这个类:publicclassProductsimplementsSerializable{privateBigDecimalproductId;privatefloatpriority;publicfloatgetPriority(){returnpriority;}publicvoidsetPriority(floatpriority){this.priority=priority;}}在对此类JSON数据进行反序列化时:{"productId":47552,"priority":78}出现这个错误:org.codehaus.jackson.map.JsonMappingExce

java - 反序列化是如何工作的?

据我所知,不会调用其对象被序列化的类的构造函数,而是调用第一个不可序列化构造函数的无参数构造函数。现在考虑以下代码publicclassSerializeDemoimplementsSerializable{privateStringname;intage;//default0publicSerializeDemo(Stringname,booleansetAge){this.name=name;if(setAge){this.age=18;}}@OverridepublicStringtoString(){return"Nameis"+name+"andageis"+age;}pub

java - 反序列化映射失败时如何使 Jackson 抛出异常

Jackson在处理反序列化映射期间发生的异常时有一个奇怪的行为:它抛出一个JsonMappingException其.getCause()返回异常链的最里面。//inmainObjectMapperjsonMapper=newObjectMapper();Stringjson="{\"id\":1}";try{Qq=jsonMapper.readValue(json,Q.class);}catch(JsonMappingExceptione){System.out.println(e.getCause());//java.lang.RuntimeException:ex2}//cla

java - Jackson 解析异常-(虽然至少有一个 Creator 存在): no String-argument constructor/factory method to deserialize from String value

SpringBoot版本:1.5.10jackson版本:2.9.5Lombok版本:1.18.0我有一个使用kafka发送负载的场景。收到该有效载荷后,我试图断言接收方和发送方端的有效载荷是否相同。首先,我创建了一个将作为有效负载传递的类。该类的结构如下所示。使用的lombok插件版本为1.18.0。@Builder@Getter@Setter@AllArgsConstructor@NoArgsConstructor@JsonIgnoreProperties(ignoreUnknown=true)publicclassMyDummyClassimplementsSerializabl

java - Gson fromJson反序列化泛型

在开发Android应用程序时,我遇到了一个问题,当时我想制作一个最终的通用方法来发送HTTP请求(使用loopj)并反序列化它们(使用Gson)。正如您在使用gson.fromJson时可能知道的,您不能这样做:gson.fromJson(responseBody,newTypeToken(){}.getType());或gson.fromJson(responseBody,newTypeToken>(){}.getType())您将获得LinkedTreeMap对象(或LinkedTreeMap对象)。如果您仍然想要反序列化通用类型对象(-s),请参阅下面的答案。+Bonus:lo

java - 使用 Jackson 反序列化数组

我有类似JSON-RPC客户端的东西,但我在反序列化时遇到了问题传入的json字符串到我的java对象中。传入的json格式为:{"value":"xxxx","type":"xxxx"}我要反序列化的对象:@JsonAutoDetect@JsonDeserialize()publicclassReturnValue{privateObjectvalue;privateStringtype;@JsonCreatorpublicReturnValue(@JsonProperty("value")Stringval,@JsonProperty("type")Stringtype){valu

java - Jackson Deserializer 没有默认(无参数)构造函数

首先,我知道这个问题:CustomDeserializerhasnodefault(noarg)constructor我已经使用了推荐的解决方案,但仍然存在同样的问题。当我尝试反序列化我的json时,我仍然收到错误。我想要对我的对象进行自定义反序列化。我的单元测试如下所示:Serviceservice=newService();service.setId("ID");service.setTitle("Title");service.setDescription("Description");service.setType("Service");ObjectMappermapper=n

java - Jackson 将 Map 变量反序列化为空 Map 而不是 null

我正在使用Jackson反序列化一个可能包含Map变量的空值的JSON。我想要的是,如果该值为null,我希望映射是一个空的HashMap而不是null。JSON:{"names":null,"descriptions":null,"nicknames":null...}Java类:privateUser{privateMapnames=newHashMap();privateMapdescriptions=newHashMap();privateMapnicknames=newHashMap();}现在,当ObjectMapper反序列化JSON时,它会覆盖字段,并设置names、d

java - 使用 Jackson 仅反序列化某些 JSON 标签

如果我不想反序列化所有标签以便我可以使用此构造函数,有没有一种方法不必从JSON中“手动”提取我需要的标签?publicclassTweet{publicStringusername;publicStringmessage;publicStringimage_url;@JsonCreatorpublicTweet(@JsonProperty("from_user")Stringusername,@JsonProperty("text")Stringmessage,@JsonProperty("profile_image_url")Stringurl){this.username=use