構文解析JSONジャクソンを使用した:我々は、POJOで、オプションの変数を持つことができます

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_PROPERTIESPOJOには存在しませんJSONで未知の性質を可能にするためにオフにすることができます。

new ObjectMapper()
    .disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES)

見てくださいジャクソンのwiki利用できる機能は、次のとおりです。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=202997&siteId=1