Cookie の使用について.本サイトでは、基本機能の提供に必要な必須 Cookie を使用しています。さらに、同意いただいた場合に限り、アクセス解析 Cookie を利用して利用状況を把握し、サービス改善に役立てます。詳しくは .
このツールは使いやすかったですか?
フィードバックは改善に役立ちます
将JSON数据自动转换为TypeScript接口或类型别名,用于前端数据模型定义与API对接。
概要
解決できる課題、処理の仕組み、データの範囲を確認できます。
このツールは、入力したJSONサンプルを読み取り、値の形に合うTypeScriptの型宣言を生成します。文字列は string、数値は number、真偽値は boolean、配列は要素の型を持つ配列として表し、ネストしたオブジェクトには関連する型を作ります。初期設定では Root という名前のinterfaceを出力し、設定を変えるとtype aliasにも切り替えられます。
たとえば {"id":42,"name":"Aoi","roles":["editor"]} を入力すると、id は number、name は string、roles は string[] と推定されます。JSONの null はキーがない状態とは異なり、値として扱われます。型宣言は入力されたサンプルからの推定結果であり、まだ観測していないAPI応答の形まで確定するものではありません。
interface とオブジェクト形式の type は、どちらもオブジェクトのプロパティとその型を記述できます。既定ではinterface形式ですが、設定からtype alias形式を選べます。配列に複数種類の値が含まれる場合は、要素型を union(たとえば string | number)で表すことがあります。オブジェクト配列のサンプル同士でキーが揃わない場合、見つからないキーが任意プロパティになることもあります。
任意プロパティの name?: string は「キー自体がない場合がある」ことを表します。一方、name: string | null は「キーはあり、値が文字列またはnull」という意味です。この区別は、呼び出し側で値を扱うときに役立ちます。
空配列には要素の手掛かりがないため、オブジェクトのフィールドが空配列だけなら広い型として出力される場合があります。値の違う複数サンプルを用意すると、unionや任意プロパティを推定する材料が増えます。日付らしい文字列は推論設定により Date として扱われる場合がありますが、JSON上の値は文字列です。アプリ側で文字列を日付オブジェクトへ変換していないなら、生成後に型を見直してください。
使い方
手順に沿って操作し、例を使って入力と結果を確認します。
APIレスポンスや設定ファイルから、代表的なJSONをコピーします。コメント、末尾カンマ、引用符のないキーなど、JavaScriptオブジェクト特有の記法は取り除いてください。複数の状態で値やキーが変わる場合は、その違いが分かるサンプルも準備します。
JSON入力欄に貼り付けます。「サンプル」で例を読み込み、「フォーマット」でインデントを整えられます。無効なJSONではエラーが表示され、変換結果は空になります。
型名を Root から UserResponse など用途の分かる名前に変更します。既定の型定義のみの出力を使うか、詳細設定でinterface/type aliasや日時推論、プロパティ名の扱いなどを調整します。
出力欄で入れ子の型、union、任意項目、null、空配列の表現を確認します。問題がなければコピーするか、型名をもとにした .ts ファイルをダウンロードします。
活用例
仕事や日常の流れの中での活用方法を紹介します。
受け取ったレスポンス例から型のたたき台を作り、API仕様書やサーバー側の定義と照らし合わせます。成功時だけでなく、空値やエラー時の形も別途確認すると差分を見つけやすくなります。
JSON設定やfixtureの構造をコード上で扱いたいときに、ネストや配列の宣言を素早く用意できます。実際に許容される値の範囲は、サンプルに現れない選択肢も含めて補います。
既存のデータ例をもとに宣言の初版を作り、利用箇所に合わせて型を段階的に絞り込めます。生成コードをそのまま確定仕様とせず、複数の入力パターンで確認しながら整えます。
Q&A
よくある疑問や迷いやすい点をまとめて確認できます。
JSONとして解析するため、キー名と文字列は二重引用符で囲み、コメント、undefined、関数、末尾カンマは使えません。真偽値とnullは小文字で true、false、null と記述します。
[] には要素の値がないため、要素型を推定する根拠がありません。空配列を含むフィールドが広い型になったら、実際の値を含む代表サンプルを追加して結果を比べ、必要な型へ調整してください。
異なります。string | null は値としてnullを許し、name? はそのキーが存在しない場合を許します。実データでどちらが起きるかに沿って宣言を確認してください。
型定義だけでは、実行時に外部から届いたJSONがその形かを検査しません。出力オプションで実行時チェック用の関数を含められる場合もありますが、生成内容を確認し、実際の入力に対する検証やエラー処理を別途実装してください。
注意
利用範囲、結果の制限、必要な注意点を事前に確認します。
生成結果は入力サンプルからの型推定であり、APIの完全な仕様書やデータ検証の代わりにはなりません。
関連
関連ツール、特集、利用可能なAPIを探せます。