我正在尝试使用 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/