問題タブ [jackson-databind]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
130 参照

kotlin - 配列を逆シリアル化するときに長さ> 0を強制する簡単な方法はありますか?

次のような JSON を受け取ったとします。

他にもいくつかのフィールドがあるかもしれませんが、この質問のために単純化しています。この JSON を次のクラスのオブジェクトにデシリアライズしたいと思います。

私の要件は、LocalTime の自然順序付けを使用して timesOfDay リストがソートされ、リストが空でないことです。

これまでのところ、LocalTime のリスト専用のカスタム デシリアライザーがあります。

リストが空でないことを強制する簡単な方法を探しています。TimesContainer のコンストラクターでリストを並べ替えても問題ありません。

以前の試行で、TimesContainer のコンストラクターで例外を発生させましたが、これにより InvalidDefinitionException が発生しました。これは、クラス定義に何か問題があることを意味します。したがって、クラス定義が正しいため、これは正しい方法ではないと思います。

また、デシリアライズ後にリストを個別に検証することも検討しましたが、JSON のどこが間違っているかをユーザーに正確に知らせるために Jackson を利用しなくなったことを意味することに気付きました。

これまでのところ、次のライブラリを使用しています。

  • com.fasterxml.jackson.module:jackson-module-kotlin:2.9.+
  • com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.9.+

https://github.com/FasterXML/jackson-annotations/wiki/Jackson-Annotationshttps://github.com/FasterXML/jackson-databind/wiki/Databind-Annotationsを調べて、これを助けますが、私は困惑しています。