【问题标题】:Jackson objectMapper readValue on String of JSON Array - ignore errorsJackson objectMapper readValue on String of JSON Array - 忽略错误
【发布时间】:2021-03-17 09:13:37
【问题描述】:

我有一个 JSON 数组,其中包含一些不属于我的类方法的对象,我想忽略/捕获它们,这就是我的 JSON 的外观:

[{
  "id": 1,
  "name": "John"
}, {
   "badItem": true
}]

我正在运行代码以将上述字符串转换为我的类(带有idname 字段),如下所示:

List<Person> personList = new ArrayList<>();
        try {
            personList = objectMapper.readValue(msg, new TypeReference<List<Person>>() {});
        } catch (Exception e) {
            logger.error("De-Serialization failed", e);
            response.addErrorMsg(e.toString());
        }

我所有的阅读都会因为一件坏事而失败。我如何才能只捕获坏项目并只解析列表中可以工作的对象? (例如 John 和 catch badItem)

【问题讨论】:

  • 你能添加模型类和有问题的 JSON 吗?
  • @fantaghirocco 有问题的类是“badItem”,它不是一个人。
  • 您将需要一个自定义的JsonDeserializer,也可能需要DeserializationProblemHandler

标签: java spring-boot jackson


【解决方案1】:

根据:https://www.baeldung.com/jackson-deserialize-json-unknown-properties
你可以configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)

我假设它会为您以后可能需要过滤掉的“坏项目”创建空对象..

【讨论】:

    猜你喜欢
    • 2016-01-11
    • 1970-01-01
    • 2019-04-10
    • 1970-01-01
    • 2015-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多