有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java ObjectMapper的默认值,如果某些字段无法转换为对象

我是Java新手,如果这个问题不符合预期标准,我深表歉意:我正在从一个平面mongodb表加载数据,并希望将所有文档写入一个Pojo,我称之为DataClass。我的问题是,在某些情况下,字段的类型不正确。在下面的代码中,我使用mapper.readValue读取Json并将其转换为对象。如果其中一个字段出错,则整个循环将失败。有没有一种方法可以按元素进行操作,而忽略出现故障或设置默认值的情况

List<DataClass> result = new ArrayList<>();
FindIterable<Document> documents = getCollection().find();
for (Document doc : documents) {
    result.add(mapper.readValue(doc.toJson(), DataClass.class));

如有任何建议,将不胜感激


共 (1) 个答案

  1. # 1 楼答案

    我猜你在找

    ObjectMapper objectMapper = new ObjectMapper();
    objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
    

    如果传递的json具有未知属性,则序列化不会失败


    此外,根据文件

    JsonMappingException if the input JSON structure does not match structure expected for result type (or has other mismatch issues)

    如果你朝那个方向看,你可以抓住JsonMappingException