我正在尝试使用 Jackson ObjectMapper 将 JSON 字符串映射到 Java 对象。如果存在映射错误,Jackson 在第一次遇到错误时会抛出异常。有没有办法让ObjectMapper在收集错误的同时映射所有字段,并将所有可能的错误一起返回?
Java 类
public class Test {
public int field1;
public int field2;
public Test() {}
}
Run Code Online (Sandbox Code Playgroud)
映射器代码片段
String json = "{\"field1\":field, \"field2\":anotherField}";
Test test = new ObjectMapper().readValue(json, Test.class);
Run Code Online (Sandbox Code Playgroud)
上面的代码在尝试将 'field' 解析为 int 时失败,并且不检查剩余字段。但是代码中,field1和field2都无法解析。有没有办法一次性获取所有潜在错误,这样我就不必一次修复 1 个错误?
嗯,恕我直言,这个问题没有一个简单的解决方案。然而,可以找到特定的解决方案。
如果你想忽略缺失的字段,只需使用注释
@JsonIgnoreProperties(ignoreUnknown = true)
Run Code Online (Sandbox Code Playgroud)
支持不可解析的数据更为复杂。请查看此讨论中的正确答案,在此处输入链接描述。
但是,如果您的 JSON 在语法上错误,例如缺少逗号或冒号,则这将无济于事。
| 归档时间: |
|
| 查看次数: |
2075 次 |
| 最近记录: |