java - 使用 Jackson 将 json 映射到 java 对象时汇总所有错误

标签 java json jackson

我正在尝试使用 Jackson ObjectMapper 将 JSON 字符串映射到 Java 对象。如果存在映射错误,Jackson 会在第一次遇到错误时抛出异常。有没有办法让ObjectMapper在收集错误的同时映射所有的字段,并把所有可能的错误一起返回?

Java 类

public class Test {
    public int field1;
    public int field2;
    public Test() {}
}

映射器代码片段

String json = "{\"field1\":field, \"field2\":anotherField}";
Test test = new ObjectMapper().readValue(json, Test.class);

上面的代码在尝试将“field”解析为 int 时失败,并且不检查剩余的字段。但是代码中,field1和field2都解析不出来。有没有办法一次获取所有潜在错误,这样我就不必一次修复 1 个错误?

最佳答案

嗯,恕我直言,这个问题没有一个简单的解决方案。 然而,可以找到特定的解决方案。

如果您想忽略缺失的字段,只需使用注释

@JsonIgnoreProperties(ignoreUnknown = true)

支持不可解析的数据更加复杂。请查看此讨论中的正确答案enter link description here .

但是,如果您的 JSON 在语法上有误,例如缺少逗号或冒号,这将无济于事。

关于java - 使用 Jackson 将 json 映射到 java 对象时汇总所有错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33118789/

相关文章:

javascript - Javascript输出JSON内容时,HTML转码应该在服务端转义还是在客户端转义?

使用 Javascript 而不是 jquery 从 json 创建 dom 元素

java - 无法实例化类型 [简单类型,类 java.time.LocalDate

java - jackson 不承认存在的领域

java - Java 中的日期不正确

java - java 的 SourceTree 预提交失败

java - Mockito 错误 MissingMethodInvocationException

php - PHP 的 json_parse 的内存耗尽错误

java - 如何映射可以具有不同类型并从另一个类扩展的请求对象数据?

java - 如何在没有任何复杂路线的情况下改变字符串?