Cookie の使用について.本サイトでは、基本機能の提供に必要な必須 Cookie を使用しています。さらに、同意いただいた場合に限り、アクセス解析 Cookie を利用して利用状況を把握し、サービス改善に役立てます。詳しくは .
このツールは使いやすかったですか?
フィードバックは改善に役立ちます
将JSON字符串自动转换为标准的Java POJO类代码,用于API对接、数据建模等开发场景。
概要
解決できる課題、処理の仕組み、データの範囲を確認できます。
このページでは、入力したJSONオブジェクトまたはオブジェクト配列の形を読み取り、対応するJavaクラスのコードを生成します。JSONのキーはフィールド、入れ子のオブジェクトは関連する型、配列は要素型を持つ配列として表されます。出力はサンプルから推定した型定義で、API仕様そのものを解析するものではありません。RFC 8259ではJSON値としてオブジェクトや配列のほか、数値、文字列、真偽値、nullも定義されています。クラスのフィールドを得たい場合は、キーを含むオブジェクト形式の例を使います。
文字列は通常String、整数はlong、小数はdouble、真偽値はbooleanとして推定されます。配列はJava配列となり、オブジェクト配列なら要素用のクラスも出力されます。JSONのnullだけでは本来の型を特定できず、Objectになることがあります。日付らしい文字列なども、入力例や推定設定により専用型として扱われる場合があるため、出力を確認してください。Javaの識別子には規則があるため、記号を含むキーやキーワードに当たる名前は調整が必要です(Java言語仕様)。
| JSONの例 | 出力の目安 | 確認点 |
|---|---|---|
"name": "Mika" | String name | 日時など意味のある文字列は契約と照合 |
"count": 12 | long count | 範囲やnull可否に合わせて型を見直す |
"items": [{...}] | 要素型を持つ配列 | 複数要素で任意項目も確認 |
"memo": null | Object memoの場合がある | 実際の型は別サンプルで確認 |
使い方
手順に沿って操作し、例を使って入力と結果を確認します。
通常値に加え、任意項目や配列の複数パターンがあれば含めます。入力欄へ貼り付け、必要なら整形して括弧やカンマを確認します。画面のサンプルを読み込んで形式を試すこともできます。
初期型名はRootです。用途が分かるOrderResponseなどに変更し、出力設定でJavaのパッケージ名をプロジェクトに合わせます。
初期状態では型定義のみを出力します。Lombokを使うプロジェクトなら該当オプションを有効にできます。Lombokの@Dataは複数のメソッド生成をまとめる注釈なので、プロジェクト側にLombok設定があるか確認してください(@Dataの公式説明)。
生成内容をコピーするか、型名を使った.javaファイルとして保存します。複数のpublicクラスが出た場合は結果中のクラス名コメントを手がかりにファイルを分けます。Javaのソースファイル名とpublic型名の関係も確認してください(Java言語仕様)。
活用例
仕事や日常の流れの中での活用方法を紹介します。
開発中のレスポンス例からクラスの骨組みを作り、正式なAPI定義と見比べて不足フィールドや型を洗い出します。
設定ファイルの構造をJava側で扱う前に、入れ子や配列の関係をコードとして眺め、命名やパッケージを整えます。
整数、小数、null、空配列を変えた例を入力し、出力の型がどう変わるかを確かめます。生成コードを小さな検証用プロジェクトで確認できます。
Q&A
よくある疑問や迷いやすい点をまとめて確認できます。
JSONは数値や文字列など単独の値も有効です。フィールドを持つクラスを作るには、{"id": 1}のようなオブジェクト、またはオブジェクト配列を入力してください。
現在の出力では整数サンプルがlongになる設定です。APIの範囲、欠落やnullの可能性を仕様で確認し、必要ならintやラッパー型へ調整してください。
nullだけから型は推定できません。文字列値を含む代表例も用意して結果を見直し、必要に応じて型を手で指定・修正してください。
プロジェクトのJavaバージョンや依存関係、複数クラスの保存方法に左右されます。必要なファイルへ分け、実際のビルド環境でコンパイルとJSON読み込みを確認してください。
注意
利用範囲、結果の制限、必要な注意点を事前に確認します。
出力は入力したサンプルからの推定コードです。API全体の項目、必須条件、数値範囲、互換性を保証するものではありません。
BigDecimalなどへ変更します。null、空配列、日時らしい文字列、キー名の変換結果を確認してください。生成された名前がJSONキーと異なる場合、シリアライズ時の対応付けが別途必要になることがあります。関連
関連ツール、特集、利用可能なAPIを探せます。