JavaのライブラリjacksonでJsonNodeの値が配列の場合にString型のListに変換する方法

JavaのライブラリjacksonでJsonNodeの値が配列の場合にString型のListに変換する方法

JSONのvalueが配列の場合があると思います。

{
  "key1":{
    "id":20,
    "name":"takahashi"
  },
  "key2":["val1", "val2"] // このvalueをJsonNodeからList<String>に変換
}

StreamSupport.stream()メソッドを使用してList<String>型に変換することができます。

streamメソッドの引数は以下です。

第一引数 第二引数
Spliterator<T> boolean

第一引数にはJsonNodeのspliterator()メソッドを渡します。第二引数は、パラレルで処理しない場合はfalseです。

String json = "{~~~// 省略}";
JsonNode root = mapper.readTree(json);
var arrays= root.get("key2");
List<String> lists =
  StreamSupport.stream(arrays.spliterator(), false)
    .map(
      e -> {
        return e.asText(); // Stringに変換
    })
    .collect(Collectors.toList()); // 注

注:Java16から以下メソッド追加されました。

.collect(Collectors.toList());

.toList();

コメント

株式会社CONFRAGE ITソリューション事業部をもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む

タイトルとURLをコピーしました