DevRight:
私は、以下の変数を持つPOJOを持っています。
private Long poId;
private String nodeName;
private String fingerPrint;
private String hardwareResourceName;
private String sequenceNumber;
private String importedOn;
private String importedBy;
private String generated;
private String installedOn;
private String currentLicense;
private String productType;
ライセンスファイルの詳細を解析するために使用されていますか?我々は特定のRESTエンドポイントへの呼び出しを行うとき、私たちは次のようなJSON応答を得ます。
[{"nodeName":"LTE02ERBS00042","fingerprint":"LTE02ERBS00042_fp","hardwareResourceName":"ELSN","generatedOn":"1251359414000","installedOn":"","currentLicense":"false","sequenceNumber":9000,"importedOn":"1531929161227","poId":281475302769484,"filePath":"/home/smrs/smrsroot/licence/LTE02ERBS00042_fp/LTE02ERBS00042_fp_151008_060941.xml","importBy":"agatAdm7160","neType":"ERBS","platformType":"CPP"}
あなたはJSONからわかるように、POJOなどに応答して返されるものとはミスマッチがありますfrom pojo: fingerPrint
from JSON: fingerprint
。また、JSONはPOJOではない余分なフィールドがあります。POJOは、他の地域の中で使用されているので、私は、既存の機能を変更する必要はありません。私は別のPOJOを作成することなく、返されるデータの変化に対応するために、余分なフィールドを追加したいと思います。
私は、オプションのか、常に必要ではないことをPOJOに変数を設定することができ、注釈を持つ方法はありますか?応答は、特定のデータのみを持っているのであれば、我々は偉大なすべての変数でJSONレスポンスを取得する場合には、しかし、それも動作します。
チャールズDowbecki:
ジャクソンは、この例に対処するためのさまざまな機能がありFAIL_ON_UNKNOWN_PROPERTIES
POJOには存在しませんJSONで未知の性質を可能にするためにオフにすることができます。
new ObjectMapper()
.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES)
見てくださいジャクソンのwiki利用できる機能は、次のとおりです。