1

私はJavaとAndroidのプログラミングに非常に慣れていません。維持する必要があるアプリケーションでは、fasterxml jacksonを使用してサーバーからのものを逆シリアル化します。

サーバーから取得する必要のある情報 (オブジェクト) を処理しますが、一部のクラスは処理したくないだけです。

問題は、関数 getForObject が RestTemplate からこれらのオブジェクトの 1 つを受け取るたびに、気にしないためにコードに含まれていないため、ライブラリが次のような例外をスローすることです。

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 に答える