ジャクソン:カスタムJSON Deserializer
-
02-10-2019 - |
質問
私は、JSONをJavaオブジェクトに脱皮化するために、Jackson LibraryのObjectMapperを使用しています。 Springの「配線」を使用しています。 JSON StringからPojoへの変換を行うために、カスタムデシリアライザーを作成しました。ただし、入力が悪い場合(たとえば、数字が「124a」 - 違法な性格として渡されます)、デフォルトの脱3serialiserが呼び出され、Numberformatexceptionで爆弾が発生します。デフォルトのコンバーターが呼び出されないようにする方法はありますか?
解決
入力が有効でないことを考えると、JSON(数字は「$」から始まることも含まれない)を考えると、Deserializerは呼び出されず、変更はパーサーに適用する必要があります。ジャクソンには、そのようなコンテンツを数値と見なすようにするスイッチはありません。
入力を制御できる場合は、値を文字列に変更するだけです(値の周りにダブルクォートを追加します)。その後、パーサーはそれをJSON文字列として渡し、データバインディングコンポーネントはそれを処理する機会を得ます(jsondeserializer)。
所属していません StackOverflow