Cookie の使用について.本サイトでは、基本機能の提供に必要な必須 Cookie を使用しています。さらに、同意いただいた場合に限り、アクセス解析 Cookie を利用して利用状況を把握し、サービス改善に役立てます。詳しくは .
このツールは使いやすかったですか?
フィードバックは改善に役立ちます
将标准JSON数据一键解析为支持Codable协议的Swift结构体或类代码,用于iOS/macOS开发。
概要
解決できる課題、処理の仕組み、データの範囲を確認できます。
JSON→Swift変換は、貼り付けたJSONを読み取り、含まれる値や入れ子構造に沿ったSwiftの型コードを作るツールです。文字列、真偽値、数値、配列、オブジェクトなどの形をサンプルから推定します。たとえば、{"user":{"name":"Aki","active":true}}なら、ユーザー情報を表す型と、その中の文字列・真偽値プロパティが出力候補になります。
ここで得られるのは、入力サンプルに基づくモデルのたたき台です。API仕様書やJSON Schemaを読み込んで検証するものではなく、将来の応答や未提示の項目まで保証しません。生成された型名やプロパティ、オプションを確認し、実際のレスポンス仕様に合わせて利用してください。
SwiftのCodableは、型をJSONとのエンコード・デコードに対応させる仕組みです。このツールでは「型定義のみ」が初期状態のため、初期出力にCodable適合が含まれるとは限りません。完全な生成コードが必要な場合は設定で型定義のみをオフにし、出力された適合やCodingKeysを確認します。Appleの説明では、CodingKeysを使ってプロパティ名とJSONキーの対応を定義できます。AppleのCodable解説も参照してください。
使い方
手順に沿って操作し、例を使って入力と結果を確認します。
JSONオブジェクトまたは配列を入力欄に貼り付けます。コメント、末尾のカンマ、JavaScript独自の値を含まない標準的なJSONを使ってください。形式を整えたい場合はフォーマット操作を利用できます。
初期の型名はRootです。用途が分かる名前に変更できます。Swiftでは構造体またはクラスを選択でき、「型定義のみ」を切り替えられます。完全な定義を出す場合は、初期化子やCodingKeysの設定も確認します。
日時、UUID、列挙型、マップなどの推論設定があります。サンプル文字列が常に日付形式であるとは限らないため、特定の型に推論された項目は元データの仕様と照合します。
入力変更後に結果が生成されます。エラーが出た場合はJSON構文を修正してください。コードをコピーするかダウンロードし、プロジェクトに追加した後、実レスポンスを使ってコンパイルとデコードを確認します。
JSONの構文上の基準はRFC 8259で確認できます。
活用例
仕事や日常の流れの中での活用方法を紹介します。
iOS開発でサンプルレスポンスを受け取ったら貼り付け、入れ子の型や基本プロパティの草案を作ります。その後、API仕様に照らして必須性、型、キー対応を調整します。
JSON側のキーとSwift側で使いたい名前が異なるデータを入力し、設定に応じたコードを確認します。デコードで使う場合は、元のJSONキーとの対応が出力に保たれているかを重点的に見ます。
文字列、数値、真偽値、配列、入れ子オブジェクトを含む短いサンプルを試し、入力構造が型定義にどう反映されるかを比較できます。サンプルにないケースは別途確認が必要です。
Q&A
よくある疑問や迷いやすい点をまとめて確認できます。
いいえ。「型定義のみ」が初期設定です。Codableを含む生成コードにしたい場合は、この設定をオフにして、結果に必要な適合や補助コードが出ているか確認してください。
出力設定によります。CodingKeysの生成設定を確認し、Swiftプロパティ名とJSONキーの対応が必要な場合は、生成コードにマッピングがあるかを確認してください。JSONDecoder側のキー変換設定を使う構成も選択肢です。
単一サンプルには未出現フィールドの情報がありません。複数ケースで欠落する項目やnullになり得る項目は、API契約や追加サンプルを確認して型を調整してください。
日時推論は設定で有効・無効を切り替えられます。推定された型と入力形式が一致するか確認し、Dateとしてデコードする場合は、アプリ側のデコーダー設定も実際の形式に合わせます。
注意
利用範囲、結果の制限、必要な注意点を事前に確認します。
型生成の結果は入力例の形を反映した草案です。実運用での互換性は、APIの正式な仕様と実データによる確認で判断してください。
nullの可能性を確認し、必要ならOptionalなどに修正します。関連
関連ツール、特集、利用可能なAPIを探せます。