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 に一括取り込みする

使い方

  1. 左側に JSON を貼り付けるか、サンプルを読み込むか、`.json` / `.txt` ファイルをアップロードします
  2. Settings でルートクラス名、package 名、注釈ライブラリ、命名戦略、Lombok や Serializable の有無を設定します
  3. 自動変換または Convert 実行後、右側に生成された Java クラス一覧を確認します
  4. 必要なクラスを個別コピーするか、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クラス情報を組み立てる例

javascript
function 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));
// => Integer

PythonでJSONキーからJavaフィールド定義を作る例

python
import 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 の例

java
import 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通常の文字列として生成
18Integer整数は Integer 推論
3.14Double小数は Double 推論
[{...}]List<User>オブジェクト配列は List<T>

注釈ライブラリの選び方

ライブラリ主な注釈向いている用途
Jackson@JsonPropertySpring Boot 既定の JSON マッピング
Gson@SerializedNameAndroid や軽量 JSON 変換
Fastjson@JSONFieldFastjson 採用の既存 Java プロジェクト
Lombok@Data / @Builder定型コードを減らした短い POJO

Authoritative References