2021-05-01から1ヶ月間の記事一覧

エポックミリ秒または秒数をJSONデシリアライズ

Jackson でJSONで表現されたエポックミリ秒またはエポック秒数を、 デシリアライズするには、次のカスタマイズ デシリアライザを用意して、 jackson-datatype-jsr310 の JavaTimeModule に登録して、 ObjectMapper にセットする。LocalDateTime として読込ま…

JSONとマップする任意クラスを定義しないでJSONの値を変更

Jackson あるいは、Google gson を使用して JSON → JavaクラスObject → 属性値の変更 → JavaクラスObject → JSON という流れを組むのがほとんどの方法であるが、 そうではなく! Jackson でJSONを読み込んだ結果の JsonNode を 変更して、toString() や、Obj…

JWT JSON読込み

JSON Web Tokens - jwt.io のJSON読込みについて、、、 デコードしたJWT の getClaims() が返す Mapが、Claimインスタンスのマップであるが、 この Claimインスタンスは、隠されたクラス com.auth0.jwt.impl.JsonNodeClaim である。 この JsonNodeClaim が値…

Jackson 2.12 から、PropertyNamingStrategy.SNAKE_CASE は、非奨励になってた。

JSON を解析、出力で使うJackson で、JSONのキー、 Property Name を Snake CASE にしたり Camel CASE にしたりする PropertyNamingStrategy.SNAKE_CASE PropertyNamingStrategy.CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES は、バージョン 2.12 から、@Depr…

Map の値にリストなどを持たせる場合の書きやすさと効率

リストなどコレクションを Map にする構造では、キー存在有無によってどうしても 初期リスト、コレクションを格納しなければならない。 Map<String, List<String>> map = new HashMap<>(); if (!map.containsKey("a")) { map.put("a", new ArrayList<String>()); } map.get("a").add("100"</string></string,>…

throwable な Function を使うケース

先日の Jackson 使用する JSON解析の方法では、 oboe2uran.hatenablog.comJSON構造の中階層のキーを任意クラス型に変換させる場合、 ObjectMapper から com.fasterxml.jackson.databind.ObjectReader を取得して、 readValue(JsonNode) メソッドを実行すれば…