1. ホーム
  2. java

[解決済み] 日付フォーマット JSONへのマッピング ジャクソン

2022-04-21 08:52:42

質問

このようなAPIから送られてくる日付の書式があります。

"start_time": "2015-10-1 3:00 PM GMT+1:00"

これは、YYYY-DD-MM HH:MM am/pm GMT タイムスタンプです。 私はこの値をPOJOのDate変数にマッピングしています。明らかに、その変換エラーが表示されます。

2つのことを知りたいです。

  1. Jackson で変換を実行するために必要な書式は何ですか?この場合、Dateは良いフィールドタイプですか?
  2. 一般的に、JacksonでObjectメンバーにマッピングされる前に、変数を処理する方法はありますか?例えば、フォーマットの変更、計算など。

どのように解決するのですか?

<ブロッククオート

Jacksonで変換を行うために必要な書式は何ですか?この場合、Dateは良いフィールドタイプですか?

Date は、このための立派なフィールドタイプです。JSONを簡単にパースできるようにするために ObjectMapper.setDateFormat :

DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm a z");
myObjectMapper.setDateFormat(df);

一般的に、Jacksonによって変数がObjectメンバーにマッピングされる前に、変数を処理する方法はありますか?たとえば、フォーマットや計算を変更するなどです。

いくつかの選択肢があります。 JsonDeserializer を拡張する。 JsonDeserializer<Date> . これは が良いきっかけになります。