Jackson库中的ObjectMapper.readValue返回null值。在什么情况下它会返回null对象?从代码库中发现。
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.9</version>
</dependency>
您可以浏览ObjectMapper类以深入了解更多细节。readValue()
用于解析 JSON 格式数据,当输入的 JSON 值为 null
时,该方法返回 null
。
但是,在其他情况下,如缺少输入,该方法会抛出异常;默认情况下,没有反序列化程序会返回 null
。
public static void main(String[] args) throws JsonMappingException, JsonProcessingException { ObjectMapper o = new ObjectMapper(); String s = "{\"id\":null}"; SomeClass r = o.readValue(s, SomeClass.class); System.out.println(r); }
,但很可能这不是你的意思。 (文档)[https://fasterxml.github.io/jackson-databind/javadoc/2.7/com/fasterxml/jackson/databind/ObjectMapper.html] 也没有这种用例,例如 readValue(String content, Class<T> valueType)
- jumping_monkey正如@StaxMan所说,如果JSON值为null,则代码应该像这样:
ObjectMapper o = new ObjectMapper();
String s = "null";
SomeClass r = o.readValue(s, SomeClass.class);
System.out.println(r)
null
?你试图反序列化什么? - Sotirios Delimanolis