我对java和android编程非常陌生,在我必须维护的应用程序中,我们使用fastxml jackson从服务器反序列化内容。
我们处理从服务器获取的信息(对象)的必须,但是我们不想处理它们的某些类。
问题是每次来自RestTemplate的函数getForObject都会收到我们在代码中没有的这些对象中的一个,因为我们不关心,库会抛出这样的异常:< / p>
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:
我试图用属性&#34; FAIL_ON_UNKNOWN_PROPERTIES&#34;忽略这一点。为假,但它不会改变任何东西,因为它不是我想忽略的属性,而是一个完全对象......
有人知道跳过这些例外的方法吗?
谢谢!
答案 0 :(得分:0)
我总是在我想要反序列化的对象上面有这个注释:
@JsonIgnoreProperties(ignoreUnknown = true)
public class ClassToBeDeserialized() {
}
答案 1 :(得分:0)
似乎没有办法通过设计来做到这一点。收到一个json对象并忽略它有点奇怪。可以忽略属性,但为此,您的对象必须存在。
所以我们所做的就是在代码中创建对象,并在反序列化后忽略它。
不漂亮,但有效。