JSONからJavaクラスへの変換器
JSON から Java クラスを生成します。ページ内で json_typegen(WebAssembly)を Kotlin モードで実行し、各 data class を private フィールド、全引数コンストラクター、getter と setter を持つ Java クラスに書き換えます。
Jackson で REST レスポンスをデシリアライズするための POJO を作る。
こんなときに使えます
- Jackson で REST レスポンスをデシリアライズするための POJO を作る。
- サンプルのペイロードから、Spring コントローラー用の DTO クラスの下書きを作る。
使い方
- 左側のエディターに JSON オブジェクトまたは配列を貼り付けます。
- 生成されたクラスを確認します。ルートは Root で、ネストしたオブジェクトはキー名に基づく別クラスになります。
- それぞれ別の .java ファイルにコピーし(List と Jackson の import は含まれます)、必要に応じて型を調整します。
JSON
{
"id": 42,
"user_name": "ada",
"active": true,
"tags": ["admin", "editor"]
}Java クラス
import java.util.List;
import com.fasterxml.jackson.annotation.JsonProperty;
public class Root {
private Long id;
@JsonProperty("user_name")
private String userName;
private Boolean active;
private List<String> tags;
public Root(Long id, String userName, Boolean active, List<String> tags) {
this.id = id;
this.userName = userName;
this.active = active;
this.tags = tags;
}
public Long getId() {
return this.id;
}
…仕様と制限
生成はブラウザ内の WebAssembly で行います。設定はありません。
snake_case のキーは Jackson の @JsonProperty 付きの camelCase フィールドになります。Jackson と java.util.List は使われる場合に import されます。
数値は Long または Double、真偽値は Boolean になります。boolean の getter は is ではなく get を使います。
null の値は Object、null だけの配列は List<?> になります。実際のデータがわかったら具体的な型に置き換えてください。
FAQ
ルートが配列の JSON も変換できますか?
できます。ルートは List<Root2> フィールドを持つラッパークラス Root になり、配列の要素はクラス Root2 になります。
省略可能なフィールドは扱えますか?
一部の配列要素にないキーは検出しますが、Java の出力では省略可能の印が外れるため、すべてのフィールドが null を許容する通常のラッパー型になります。
Lombok のアノテーションや record を生成しますか?
しません。明示的なコンストラクター、getter、setter を持つ通常のクラスを出力します。
null の値はどの型になりますか?
サンプルで null のフィールドは、具体的な型を推定できないため Object(private Object note;)になります。String、Long、ネストしたクラスにするには、実際の値を含むサンプルを入力してください。