Java Jackson-不反序列化字符串“;空";设置为空对象

Java Jackson-不反序列化字符串“;空";设置为空对象,java,jackson,Java,Jackson,我正在使用Jackson 2.6.3将JSON字符串反序列化为Java对象,下面有一段代码: ObjectMapper objectMapper = new ObjectMapper(); HashMap<?, ?> result = objectMapper.readValue("null", HashMap.class); // result is null System.out.println(result == null); ObjectMapper ObjectMapp

我正在使用Jackson 2.6.3将JSON字符串反序列化为Java对象,下面有一段代码:

ObjectMapper objectMapper = new ObjectMapper();
HashMap<?, ?> result = objectMapper.readValue("null", HashMap.class);
// result is null 
System.out.println(result == null);
ObjectMapper ObjectMapper=new ObjectMapper();
HashMap结果=objectMapper.readValue(“null”,HashMap.class);
//结果为空
System.out.println(结果==null);

我想知道Jackson是否有任何配置不将
String
“null”
转换为
null
对象,而是抛出异常

我对Jackson不是很了解,但是在你的UtilClass中,有一个简单的方法,比如:

public <T> T deserialize(final ObjectMapper objectMapper, final String jsonString, final Class<T> yourClass) throws Exception 
{
   if(jsonString == null || jsonString.equalsIgnoreCase("null"))
      throw new Exception(); //maybe change the type's exception
   return objectMapper.readValue(jsonString, yourClass);
}
public T反序列化(final ObjectMapper ObjectMapper,final String jsonString,final Class yourClass)引发异常
{
if(jsonString==null | | jsonString.equalsIgnoreCase(“null”))
抛出新异常();//可能会更改类型的异常
返回objectMapper.readValue(jsonString,yourClass);
}

Duplicate of?它们不一样。是的,这很简单,但如果要从字节数组反序列化,则需要做更多的工作来预检查输入。不太方便。