JSON 配列から List<T> フィールドを持つ Java POJO を生成する
JSON 配列を型付き List<T> フィールドに変換します。配列の中身から要素型を推論する仕組みと、混合型配列で List<Object> にフォールバックする挙動を解説します。
Structure
詳細な説明
JSON 配列を Java の List として扱う
JSON 配列は java.util.List<T> に直接マッピングされます。ジェネレーターは配列の中身を見て要素型 T を決定します。
プリミティブの同種配列
{
"name": "playlist",
"track_ids": [101, 102, 103]
}
public class Playlist {
private String name;
private List<Integer> trackIds;
// アクセサ
}
オブジェクトの配列
{
"id": 1,
"items": [
{ "sku": "A1", "qty": 2 },
{ "sku": "B2", "qty": 1 }
]
}
public class Order {
private Integer id;
private List<Item> items;
}
public class Item {
private String sku;
private Integer qty;
}
クラス生成は配列の最初の要素を基にします。それ以降の要素も同じ形と仮定するため、もし違うのであれば手動でフィールドをマージする必要があります。
混合型の配列
{ "values": [1, "two", true] }
public class Root {
private List<Object> values;
}
要素の型がバラバラなら List<Object> にフォールバックします。型安全にアクセスしたい場合は sealed interface やラッパークラスで手動的に絞り込みましょう。
空の配列
{ "tags": [] }
private List<Object> tags;
要素型が不明なため List<Object> を出力します。API 仕様を確認して正しい型に置き換えてください。
必要な import
ジェネレーターは自動的に以下を追加します。
import java.util.List;
なぜ配列ではなく List なのか?
Java の配列は固定長で、ジェネリクスとの相性も悪い(new T[] はコンパイルエラー)です。List<T> は Collections フレームワーク、Stream、各種 JSON ライブラリとシームレスに連携します。Jackson、Gson、Moshi はいずれもフィールド型が List であれば JSON 配列を List にデシリアライズします。
ユースケース
ページネーションレスポンス("results": [...], "total": 42)、集計レスポンス("items": [...])、イベントログのペイロードはすべて JSON 配列を使います。型付き List<T> にマッピングすればキャスト不要で IDE サポートと Stream 処理が活きます。