【问题标题】:How to ignore object that I don't have with fasterxml jackson如何使用fastxml jackson忽略我没有的对象
【发布时间】:2014-12-09 16:48:04
【问题描述】:

我对 java 和 android 编程非常陌生,在我必须维护的应用程序中,我们使用 fastxml jackson 来反序列化来自服务器的内容。

我们必须处理从服务器获得的信息(对象),但我们只是不想处理某些类。

问题在于,每次来自 RestTemplate 的函数 getForObject 收到我们在代码中没有的对象之一,因为我们不在乎,库会抛出如下异常:

org.springframework.http.converter.HttpMessageNotReadableException: Could not read JSON: Invalid type id 'com.xxxx.sam.common.sync.SongImageMappingSyncInfo' (for id type 'Id.class'): no such class found (through reference chain: [Ljava.lang.Object[][1]); nested exception is com.fasterxml.jackson.databind.JsonMappingException: 

我试图通过将属性“FAIL_ON_UNKNOWN_PROPERTIES”设置为 false 来忽略这一点,但它不会改变任何东西,因为它不是我想要忽略的属性,而是一个完全的对象......

有人知道跳过这些异常的方法吗?

谢谢!

【问题讨论】:

    标签: java android json jackson fasterxml


    【解决方案1】:

    我总是在我想要反序列化的对象上方有这个注释:

    @JsonIgnoreProperties(ignoreUnknown = true)
    public class ClassToBeDeserialized() {
    }
    

    【讨论】:

    • 也许这不是一个好习惯。我只是用@JsonIgnore 注释我想忽略的字段,但所有这些字段......
    【解决方案2】:

    似乎没有办法通过设计来做到这一点。接收一个 json 对象并忽略它有点奇怪。可以忽略属性,但要这样做,您的对象必须存在。

    所以我们所做的是在我们的代码中创建对象,一旦它被反序列化我们就忽略它。

    不漂亮,但它工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-23
      • 1970-01-01
      • 1970-01-01
      • 2015-10-07
      • 2011-07-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多