Java ObjectMapper在尝试使用空字段构造实例时抛出JsonMappingException
我尝试将可序列化对象序列化为json字符串,该字符串将包含空字段。 当所有字段都初始化时-所有字段都正常工作,但当我设置为fieldJava ObjectMapper在尝试使用空字段构造实例时抛出JsonMappingException,java,json,serialization,objectmapper,Java,Json,Serialization,Objectmapper,我尝试将可序列化对象序列化为json字符串,该字符串将包含空字段。 当所有字段都初始化时-所有字段都正常工作,但当我设置为fieldnullvalue时,出现了异常: com.fasterxml.jackson.databind.JsonMappingException: (was java.lang.NullPointerException). 我的代码: public String toJsonString(T t) throws JsonProcessingException{
null
value时,出现了异常:
com.fasterxml.jackson.databind.JsonMappingException: (was java.lang.NullPointerException).
我的代码:
public String toJsonString(T t) throws JsonProcessingException{
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.setVisibility(PropertyAccessor.FIELD, JsonAutoDetect.Visibility.ANY);
String dtoAsString = objectMapper.writeValueAsString(t); //string where I got the exception
return dtoAsString;
}
对象:
SomeObject{
@JsonSerialize(using = LocalDateSerializer.class)
LocalDate date = LocalDate.now();
Long value = null;
}
附言:
问题在于,我无法在json中自动解析
someObject
,因为我遇到了另一个异常-我需要将date
解析为特殊的字符串格式。因此,我需要准确地使用我的方式-objectMapper(Gson().toString错误地序列化了我的LocalDate
值)。我找到了解决方法:
发生错误,因为其中一个字段尚未初始化,因此ObjectMapper
trowed异常
只需将@JsonInclude(JsonInclude.Include.NON_NULL)
添加到POJO类中:
@JsonInclude(JsonInclude.Include.NON_NULL)
SomeObject{
String date = "11.01.19";
Long value = null;
}
因此,我们将获得不带可空字段的json:
{
"date" : "11.09.19"
}
我被发现解决了以下问题: 发生错误,因为其中一个字段尚未初始化,因此
ObjectMapper
trowed异常
只需将@JsonInclude(JsonInclude.Include.NON_NULL)
添加到POJO类中:
@JsonInclude(JsonInclude.Include.NON_NULL)
SomeObject{
String date = "11.01.19";
Long value = null;
}
因此,我们将获得不带可空字段的json:
{
"date" : "11.09.19"
}