1

我对 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 来忽略这一点,但它不会改变任何东西,因为它不是我想忽略的属性,而是一个完全的对象......

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

谢谢!

4

2 回答 2

0

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

@JsonIgnoreProperties(ignoreUnknown = true)
public class ClassToBeDeserialized() {
}
于 2014-12-10T11:32:35.670 回答
0

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

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

不漂亮,但它工作。

于 2014-12-16T16:45:23.733 回答