我有一个已经序列化的JSON字符串。从源序列化时,未忽略null属性值。因此,对象的序列化输出类似于:
"person": {
"name": "foo",
"surname": null
}
现在,如果我在Java中使用对象映射器反序列化上面的内容,它会抛出一个异常,指向value not Available。对象映射器是否可以将“姓氏”反序列化回“null”?我可以配置对象映射器在这种情况下不会失败吗?
public static void main(String[] args) throws IllegalArgumentException, IllegalAccessException, InstantiationException, JsonProcessingException {
Person person = new Person();
person.name = "Hades";
ObjectMapper mapper = new ObjectMapper();
String jsonWithNull = mapper.writeValueAsString(person);
System.out.println("Before :: "+jsonWithNull);
mapper = new ObjectMapper().setSerializationInclusion(Include.NON_NULL); // U cant use the same object create a new one
String jsonWithOutNull = mapper.writeValueAsString(person);
System.out.println("After :: "+jsonWithOutNull);
System.out.println("While deserializing");
//********************
//This is how u should read a null string into ur Java class
Person p = mapper.readValue(jsonWithNull, Person.class);//user null string with Mapper
System.out.println(p);
}
class Person{
public String name;
public String surName;
@Override
public String toString() {
return "Person [name=" + name + ", surName=" + surName + "]";
}
}
输出
Before :: {"name":"Hades","surName":null}
After :: {"name":"Hades"}
While deserializing
Person [name=Hades, surName=null]
我的POJO是:
如何将jackson JSON映射器与Java 8 LocalDateTime一起使用? JSONMappingException:无法从JSON字符串实例化类型[simple type,class java.time.LocalDateTime]的值;没有单字符串构造函数/工厂方法(通过引用链:mydto[“field1”]->subdto[“date”])
我被要求更改jackson映射配置,以便我们(从JSON)反序列化的每个空对象都将被反序列化为NULL。 因此,对于像或这样的json,我希望在java中转换为(而不是空字符串或实例)。
我需要一个自定义反序列化器来在复杂的POJO中转换字符串。反序列化工作直到使用反序列化器:特别是使用自定义反序列化器时,我的对象的非对象属性不会序列化。 我有一个restful Web服务,它有一个pojo作为参数。 所以我的类PreentivoWs需要一个方法。这里是类定义: 在jsonObject中,我有一个枚举定义为 但此对象需要转换反序列化程序: 并在财产上标注: fromString方法
我试图使用Jackson将JSON反序列化为Java POJO。在不泄露机密信息的情况下,以下是ObjectMapper反序列化失败时的堆栈跟踪示例: 枚举类型如下所示: 我确实意识到我试图反序列化一个空值。但我认为这仍然有效:反序列化的结果应该等同于具有的映射,这确实是一个有效的Java指令。非常感谢帮助,提前感谢。
我对Jackson有一个错误的理解,就是将json文件反序列化为poco。这是我的代码: 我的POCO命名为AnimalBean: }还有我的JSON文件: } 当我执行我的代码时,我有以下错误:未识别的字段“动物园”(类动画豆),未标记为可忽略的。我知道问题是我的json文件开始不直接由动物,但我不能改变它,因为它不是我的。我已经尝试把对象apper.configure(Deseriazatio