JSONからJavaへ
JSONをJava POJOやDTOへすばやく変換し、注釈付きのクラスコードをそのままIDEへ持ち込めます。処理はすべてブラウザ内で完結します。
関連おすすめ
JSONからJava変換ツールとは?
JSONからJava変換ツールは、JSONの構造を解析し、標準的なJava POJOクラスへ自動変換する開発支援ツールです。手作業で package、import、private フィールド、getter、setter を書く手間を大きく減らせます。
特に Spring Boot、Android、MyBatis、社内API連携などでは、サンプルJSONを受け取ってすぐJavaモデルへ変えたい場面が多くあります。本ツールはネストしたオブジェクトを個別クラスに分解し、配列は `List<T>` として推論します。
GeekFormat の JSONからJavaツールは、Gson、Jackson、Fastjson、Lombok の切り替え、Serializable、Builder、命名戦略、ZIP一括ダウンロードなどに対応しており、生成コードをそのままIDEに貼り付けて使えます。
ユースケース
- Spring Boot の API サンプル JSON を DTO や VO に変換する
- Android や Java クライアント向けに JSON レスポンスから JavaBean を作る
- 社内システム連携で受け取った JSON を Jackson / Gson モデルへ変換する
- Lombok を使って短い POJO を生成し、レビューしやすいコードにする
- 複雑なネスト JSON を Java の複数クラスに分解して設計を把握する
- ZIP でまとめてダウンロードし、IDE に一括取り込みする
使い方
- 左側に JSON を貼り付けるか、サンプルを読み込むか、`.json` / `.txt` ファイルをアップロードします
- Settings でルートクラス名、package 名、注釈ライブラリ、命名戦略、Lombok や Serializable の有無を設定します
- 自動変換または Convert 実行後、右側に生成された Java クラス一覧を確認します
- 必要なクラスを個別コピーするか、Download ZIP でまとめて保存します
特徴
- 複数の注釈ライブラリ対応: Gson、Jackson、Fastjson、Lombok を切り替えて生成できます
- Lombok簡略化: `@Data`、`@Builder`、コンストラクタ注釈でPOJOコードを短くできます
- 命名戦略を選択可能: snake_case を camelCase に変換するなど、Java向けの命名へ調整できます
- ネストクラスを自動生成: ネストした JSON オブジェクトを独立した Java クラスへ分割します
- 配列を List<T> に変換: JSON 配列から Java のジェネリクス付き List 型を推論します
- Serializable やメソッド生成: `toString`、`equals`、`hashCode`、コンストラクタ出力を選べます
- ZIP 一括ダウンロード: 生成した複数の `.java` ファイルをパッケージ構成付きで保存できます
- ローカル処理で安全: JSON解析、コード生成、ZIP作成のすべてをブラウザ内で実行します
コード例
JavaScriptでJSONからJavaクラス情報を組み立てる例
javascriptfunction toJavaFieldType(value) {
if (value === null) return 'Object';
if (Array.isArray(value)) return 'List<Object>';
if (typeof value === 'number') return Number.isInteger(value) ? 'Integer' : 'Double';
if (typeof value === 'boolean') return 'Boolean';
if (typeof value === 'string') return 'String';
if (typeof value === 'object') return 'NestedType';
return 'Object';
}
console.log(toJavaFieldType({ id: 1 }.id));
// => IntegerPythonでJSONキーからJavaフィールド定義を作る例
pythonimport json
def java_type(value):
if value is None:
return 'Object'
if isinstance(value, bool):
return 'Boolean'
if isinstance(value, int):
return 'Integer'
if isinstance(value, float):
return 'Double'
if isinstance(value, str):
return 'String'
if isinstance(value, list):
return 'List<Object>'
if isinstance(value, dict):
return 'NestedType'
return 'Object'
sample = json.loads('{"name":"Alice","age":18}')
for key, value in sample.items():
print(f'private {java_type(value)} {key};')生成後に使える Lombok POJO の例
javaimport lombok.Data;
import lombok.Builder;
@Data
@Builder
public class User {
private Integer id;
private String name;
}よくある質問
JSONをJava POJOに変換するには?
JSON を入力欄に貼り付けると、自動または手動実行で Java クラスが生成されます。右側の各クラスをコピーするか、ZIP でまとめてダウンロードできます。
どの注釈ライブラリに対応していますか?
Gson の `@SerializedName`、Jackson の `@JsonProperty`、Fastjson の `@JSONField`、Lombok の `@Data` や `@Builder` に対応しています。用途に応じて切り替えられます。
ネストしたJSONオブジェクトはどうなりますか?
ネストしたオブジェクトは独立した Java クラスとして生成され、親クラスから型参照されます。深い JSON 構造でも POJO へ分割して扱えます。
配列は自動で List<T> になりますか?
はい。文字列配列なら `List<String>`、オブジェクト配列なら `List<User>` のように要素型を推論します。空配列は `List<Object>` として扱われます。
snake_case を camelCase に変換できますか?
できます。命名戦略で camelCase を選ぶと、`user_name` を `userName` に変換しつつ、必要なら注釈内に元の JSON キー名を残せます。
Lombok モードではどんなコードになりますか?
Lombok を有効にすると、getter や setter を省略し、`@Data`、`@Builder`、`@NoArgsConstructor`、`@AllArgsConstructor` などを使った短いクラスが生成されます。
生成コードは Spring Boot で使えますか?
はい。Jackson や Lombok を選べば、Spring Boot の DTO、VO、リクエスト・レスポンスモデルとしてそのまま使いやすい形になります。
JSON はサーバーへ送信されますか?
送信されません。ブラウザ内で完結するため、社内APIや未公開データを含む JSON でも扱いやすくなっています。
トラブルシューティング
Invalid JSON エラーが出る
まず JSON の構文を確認してください。末尾カンマ、シングルクォート、未引用キーなどは JSON Repair ツールで修正できます。
配列の型が期待どおりに推論されない
空配列や型が混在する配列は `List<Object>` になりやすいです。代表的な要素を先頭に置くと推論結果が安定します。
snake_case のままフィールドが生成される
Settings の命名戦略が `asis` のままかもしれません。camelCase へ切り替えて再生成してください。
Lombok のコードが IDE で認識されない
プロジェクトに Lombok 依存関係を追加し、IDE の Lombok プラグインや annotation processing を有効にしてください。
大きな JSON でクラス数が多すぎる
非常に大きい JSON は段階的に分割して変換すると確認しやすくなります。必要に応じて根クラスを分けて複数回生成してください。
用語集
- POJO
- フレームワークに強く依存しない、通常の Java オブジェクトです。JSON モデルクラスとして広く使われます。
- JavaBean
- private フィールド、getter、setter、無引数コンストラクタを備えた Java の慣例的クラス形式です。
- DTO
- Data Transfer Object の略で、API やサービス間でデータを受け渡すためのクラスです。
- Lombok
- getter、setter、builder などの定型コードを注釈で自動生成する Java ライブラリです。
- @JsonProperty
- Jackson で JSON キー名と Java フィールド名を対応付ける注釈です。
- @SerializedName
- Gson で元の JSON キー名を保持したまま Java フィールドへマッピングする注釈です。
- Serializable
- Java オブジェクトをシリアライズ可能にするためのマーカーインターフェースです。
- List<T>
- Java で配列的な複数要素を扱う代表的なジェネリクス付きコレクション型です。
JSON 型と Java 型の対応表
| JSON 値 | Java 型 | 補足 |
|---|---|---|
"Alice" | String | 通常の文字列として生成 |
18 | Integer | 整数は Integer 推論 |
3.14 | Double | 小数は Double 推論 |
[{...}] | List<User> | オブジェクト配列は List<T> |
注釈ライブラリの選び方
| ライブラリ | 主な注釈 | 向いている用途 |
|---|---|---|
Jackson | @JsonProperty | Spring Boot 既定の JSON マッピング |
Gson | @SerializedName | Android や軽量 JSON 変換 |
Fastjson | @JSONField | Fastjson 採用の既存 Java プロジェクト |
Lombok | @Data / @Builder | 定型コードを減らした短い POJO |
Authoritative References
- JacksonJackson アノテーションの概要
- GsonGson ユーザーガイド
- LombokProject Lombok 公式サイト
- OracleJava チュートリアル - クラスの基礎
- JSON 圧縮
- CSV to JSON
- JSON から CSV
- JSON Diff
- JSON Escape / Unescape
- JSONフラット化
- JSON フォーマッター
- JSON 生成
- JSONPath オンラインクエリ
- JSON マージ
- JSON 修復
- JSON Schema バリデーター
- JSONソート
- JSON Stringify
- JSONをHTMLに変換
- JSONからJavaへ
- JSON から Markdown
- JSON を SQL に変換
- JSON から TOML へ変換
- JSONをTypeScriptに変換
- XML を JSON に変換
- JSONをXMLへ変換
- YAML を JSON に変換
- JSON → YAML 変換
- JSON から Go へ
- JSON から Rust
- JSON から Swift
- JSON から C#
- JSON から C++
- JSON を PHP に
- JSON から Python