Jackson ObjectMapper 将“null”解析为有效的 JSON?

问题描述 投票:0回答:1

我最近了解到以下行为是默认行为:

public static void main(String[] args) throws JsonProcessingException {
    final ObjectMapper objectMapper = new ObjectMapper();

    final MyClass aNull = objectMapper.readValue(" null", MyClass.class);
    // works and aNull == null

    final MyClass bNull = objectMapper.readValue((String) null, MyClass.class);
    // throws IllegalArugmentException
}

public static class MyClass {
    public String value;
}

我觉得这有点违反直觉。

有没有办法强制进行“严格”解析并使第一个示例抛出

IllegalArugmentException
(或任何其他异常)?

我们想要这个,因为否则我们需要进行广泛的输入验证或包装扩展

ObjectMapper
来覆盖行为。

java jackson
1个回答
0
投票

怎么样

var input =  // string input
var ob = objectMapper.readValue(input, MyClass.class);
return Optional.ofNullable(ob)
    .orElseThrow(() -> new IllegalArugmentException("Invalid Input"));
© www.soinside.com 2019 - 2024. All rights reserved.