JSONをTypeScriptに変換
無料オンライン JSON→TypeScript ツール。JSON データを標準 TS interface 型定義に自動推論。ネストオブジェクトのサブインターフェース、配列の联合型、オプショナルフィールドと readonly 読み取り専用フィールド、2/4 スペースインデント選択対応、ブラウザローカル処理のみでアップロード不要。
関連おすすめ
JSON→TypeScript について:JSON データを自動的に TS 型に変換
JSON→TypeScript は JSON 形式のデータ(JSON オブジェクトまたは JSON 配列)を TypeScript interface 型宣言に変換するプロセスです。JSON(JavaScript Object Notation)は REST API、設定ファイル、ログの標準データフォーマットとしてフロントエンドとバックエンドの開発で至る所で使用されており、TypeScript は JavaScript のスーパーセットで、コードに静的型チェックを追加します。開発では API から返される JSON に対応する TS interface を作成する必要がよくありますが、手動で書くのはエラーが発生しやすく時間がかかるため、本ツールはこのプロセスを自動化します。
本ツールの核心は JSON オブジェクトの構造を TypeScript interface に自動推論することです。各 JSON オブジェクトの key が interface のプロパティ名になり、各 value のリテラル型が対応する TS 型にマッピングされます:文字列は `string`、数字は `number`、ブール値は `boolean`、null は `null`、配列は `T[]`、ネストオブジェクトは独立したサブ interface にマッピングされます。プロセス全体はブラウザローカルで完了し、バックエンドサービスは不要で、数秒で完全かつ利用可能な型定義を生成できます。
型推論は JSON→TypeScript の核心です。JSON 自体には 6 つの基本型(null、boolean、number、string、array、object)しかありませんが、TypeScript の基本型システムには string、number、boolean、null、undefined、any、unknown、void、never、object、Array、T[]、联合型 (A | B) などが含まれます。本ツールの getTsType 関数は value の typeof と具体的な形式に従ってマッピングします:typeof null は `null` にマッピング;typeof undefined は `undefined` にマッピング;typeof boolean は `boolean` にマッピング;typeof number は `number` にマッピング;typeof string は `string` にマッピング;Array.isArray() がヒットした場合は配列として処理します。
ネストオブジェクト処理はツールの重要な機能です。JSON にネストオブジェクトが含まれている場合、ツールは再帰的に独立したサブ interface を生成し、型の重複を回避します。例えば `address: { street, city }` は `RootAddress` サブ interface を生成し、メイン interface では `address: RootAddress` として参照します。サブ interface の命名規則は「親 interface 名 + フィールド名の頭文字大文字」で、意味的な明確さを保ちます。processedTypes Set は重複排除に使用され、同じ構造のネストオブジェクトは 1回だけ interface を生成します。
配列型推論には 3つの処理モードがあります。第一に、配列が空の場合は `any[]` をフォールバックとして生成します(要素型を推論できないため)。第二に、すべての要素の型が一致する場合は `T[]` 形式(例:`string[]`、`User[]`)を生成します。第三に、要素の型が一致しない場合は联合配列 `(A | B)[]`(例:`(string | number)[]`)を生成します。この区別により、生成される型は正確で読みやすく、不必要な `any[]` の過剰使用を回避します。
オプショナルフィールド(?)は TypeScript strict モードの重要な機能です。有効にすると、ツールは各フィールドの値をスキャンし、null または undefined の場合は interface に `?` 修飾子を追加します:`name?: string` はそのフィールドが省略可能であることを示します。これはバックエンド API が返すオプショナルフィールドに非常に便利で、undefined フィールドにアクセスしたときのランタイムエラーを回避します。読み取り専用フィールド(readonly)は不変性を強調し、生成されるコードは `readonly id: number` のような形式で、設定、状態スナップショット、DTO などのシナリオの定義に適しています。
interface vs type エイリアスは TypeScript ユーザーによくある選択です。本ツールは interface を一律に生成することを選択しており、その理由は interface が TypeScript でオブジェクト型を記述する標準方式であり、宣言マージ(declaration merging)、implements キーワード、extends 継承をサポートし、React、Vue、Angular などの主流フロントエンドプロジェクトのコーディング規約により適合しているためです。type エイリアスは联合型、交差型、関数型を記述する際に強力ですが、オブジェクト型には interface が好まれます。
リアルタイム変換はツールの実用的な機能です。ユーザーが JSON を入力すると 400ms デバウンスで自動的に変換がトリガーされ、手動でボタンをクリックする必要がありません。CodeMirror の TypeScript 構文ハイライト(@codemirror/lang-javascript の typescript: true オプションを介した)と組み合わせることで、ユーザーは生成された interface を即座に確認し、入力を変更して出力の変化を観察できます。このリアルタイムフィードバックにより型設計効率が大幅に向上し、特に迅速な試行錯誤時に効果的です。
JSON エラー自動修復はツールの堅牢性を向上させます。現実には、ユーザーが入力する JSON には末尾カンマ、シングルクォート、引用符欠損、コメントなどの小さな問題がよくあるためです。内蔵の tryFixJSON 関数は JSON.parse が失敗したときに一般的なエラーの修復を自動的に試み、修復が成功した場合はユーザーに通知します。それでも解析できない場合は右側に具体的なエラー位置と理由が表示され、ユーザーに修正を促します。この設計によりツールの実用性が一段と向上し、小さなエラーで手動調整を繰り返す必要がなくなります。
純粋なフロントエンド処理は本ツールの核心アーキテクチャです。すべての JSON 解析、型推論、interface 生成はブラウザ JavaScript で実行され、いかなるサーバーにもデータを送信しません。この設計には 2つの核心的な利点があります:第一に、JSON 内容にはユーザーの機密情報(API キー、トークン、ユーザーデータ)が含まれる可能性があり、ローカル処理は漏洩リスクを完全に排除します。第二に、変換速度はデバイスの CPU のみに制限され、1MB 以内の JSON はほぼ瞬時に変換が完了し、ネットワークラウンドトリップを待つ必要がありません。これは登録ログインが必要な一部のオンラインサービスと比較して、より優れたプライバシー保護とパフォーマンスを提供します。
ユースケース
- フロントエンド開発で REST API や GraphQL の JSON レスポンスを素早く TS interface に変換し、手動での型定義記述を回避します。
- React/Vue/Angular プロジェクトの Props、State、コンポーネントパラメータの型宣言が必要な場合、サンプル JSON から数秒で生成します。
- フルスタック TypeScript プロジェクトでフロントエンドとバックエンドが型定義を共有する場合、バックエンドのモック JSON をフロントエンドの type source of truth として利用できます。
- サードパーティ API(宅配便、天気、決済など)と連携する際、対応する TypeScript インターフェースを素早く生成し、ドキュメント調査の手間を省きます。
- モックデータ、テストフィクスチャ、JSON 設定ファイルから型定義を逆生成し、型安全性と IDE インテリセンスを強化します。
- データベース ORM がエクスポートした JSON Schema を TypeScript interface に変換し、Node.js バックエンドの DTO 定義に統合します。
- TypeScript 学習時に既存の JSON を interface 例に変換し、ネスト型、联合型、オプショナルフィールドの書き方を理解します。
- コードリファクタリング時に散在する JS オブジェクトリテラルを正式な interface に変換し、コード可読性と型安全性を向上させます。
使い方
- 左側の入力ボックスに JSON 内容を貼り付けるか、「アップロード」ボタンをクリックして .json/.txt ファイルを選択するか、「サンプル」をクリックして内蔵サンプルをロードします。
- ツールバー右側の interface 名ボタン(または歯車アイコン)をクリックして、ルート interface 名をカスタマイズ(デフォルト Root)、オプショナルフィールド/読み取り専用フィールドを有効化します。
- ツールが自動的に変換します(入力後 400ms デバウンス);右側で生成された TypeScript interface コードを確認し、CodeMirror ハイライトで読みやすく表示されます。
- インデントスタイル(2 スペースまたは 4 スペース)を選択し、ツールバーの左/右パネルの幅を調整して最適な表示体験を得ます。
- 「コピー」をクリックして TS コードをクリップボードにコピー、または「ダウンロード」をクリックして `${interfaceName}.ts` ファイル(例:User.ts)として保存します。
- コードをプロジェクトの `types/` ディレクトリまたは `src/types/` ディレクトリに貼り付け、必要に応じて import して使用します。
特徴
- スマート型推論: null、boolean、number、string、array、object などの TypeScript 型を自動認識し、ネイティブ TS 構文にマッピングします。
- ネストオブジェクトの自動展開: ネストオブジェクトに対して独立したサブ interface(RootAddress など)を自動作成し、型の階層を明確に保ち冗長を回避します。
- 配列型のスマート処理: 要素型が一致する場合は `T[]`、混合型は联合配列 `(A | B)[]`、空配列は `any[]` をフォールバックとして生成します。
- オプショナルフィールドマーク: 有効にすると null/undefined フィールドを自動検出し `?` 修飾子を追加、TypeScript strict モードに準拠したコードを生成します。
- 読み取り専用フィールドサポート: 有効にするとすべてのフィールドに `readonly` 修飾子を追加、不変状態、設定、DTO などのシナリオに適しています。
- interface 名カスタマイズ: ルート interface 名を設定可能(デフォルト Root)、ダウンロードファイル名もその名前で命名されます(例:User.ts)。
- 2/4 スペースインデント選択可能: ツールバーでワンクリック切り替え、2 スペース(ESLint デフォルト)と 4 スペースインデントスタイル。
- リアルタイム自動変換: JSON 入力後 400ms デバウンスで自動変換、ボタンクリック不要;貼り付け、ファイルアップロード、サンプルの 3つの入力方式に対応。
- JSON エラー自動修復: 内蔵 tryFixJSON 修復関数で末尾カンマ、シングルクォート、引用符欠損などの一般的な構文エラーを自動処理。
- TypeScript コードハイライト: 右側出力は CodeMirror + JavaScript (TypeScript) ハイライトを使用し、可読性が高い。
- コピーとダウンロード: ワンクリックでクリップボードにコピー、または標準 .ts ファイルとしてダウンロードしてフロントエンドプロジェクトで直接使用。
- 純粋なブラウザローカル処理: すべての JSON 解析、型推論、interface 生成はブラウザ JavaScript で実行され、元のデータはアップロードされません。
よくある質問
JSON を TypeScript interface に変換するには?
左側の入力ボックスに JSON 内容を貼り付けると、ツールが自動的に各フィールドの型(string、number、boolean、array、object など)を推論し、標準の TypeScript interface 定義を生成します。ネストオブジェクトは自動的にサブ interface を作成して型の階層を明確に保ちます。入力後 400ms で自動変換され、手動クリックは不要です。
type エイリアスと interface のどちらを生成しますか?
本ツールは TypeScript interface 宣言のみを生成します(type エイリアスは非対応)。interface は TypeScript でオブジェクト型を記述する標準方式で、宣言マージ(declaration merging)と implements キーワードをサポートし、React、Vue、Angular などのフロントエンドプロジェクトで好まれます。
オプショナルフィールドをマークするには?
設定で「オプショナルフィールド(?)」を有効にすると、ツールが値が null または undefined のフィールドを自動検出し、interface に `?` 修飾子を追加します。例えば `name?: string` はそのフィールドが省略可能であることを示します。生成されるコードは TypeScript strict 厳格モード仕様に準拠します。
読み取り専用フィールドを生成するには?
設定で「読み取り専用フィールド(readonly)」を有効にすると、すべてのフィールドに自動的に `readonly` 修飾子が追加されます。例えば `readonly id: number` のようになります。生成される interface は不変性を強調し、設定、状態スナップショット、DTO などのシナリオの定義に適しています。
配列型はどのように処理されますか?
ツールは配列要素の型を分析します。すべての要素の型が一致する場合は `T[]` 形式(例:`string[]`)を生成します。型が一致しない場合は联合配列 `(A | B)[]` 形式(例:`(string | number)[]`)を生成します。配列が空の場合は `any[]` をフォールバックとして生成します。
ネストされたオブジェクトは複数の interface を生成しますか?
はい。各ネストオブジェクトは独立したサブ interface を生成し、命名規則は「親 interface 名 + フィールド名の頭文字大文字」です。例えば Root に address オブジェクトが含まれる場合、Root と RootAddress の 2つの interface を同時に生成します。サブ interface は自動的に参照され、型の重複定義を回避します。
interface 名をカスタマイズできますか?
はい。ツールバー右側の interface 名ボタン(または設定)をクリックすると、ルート interface の名前をカスタマイズできます(デフォルト Root)。ダウンロードされる .ts ファイルもその名前で命名されます(例:`User.ts`)。サブ interface の命名はルート名に基づいて自動生成されます。
ダウンロードした .ts ファイルをプロジェクトで直接使用できますか?
はい。生成されるコードは TypeScript コーディング規約に準拠し、完全な型定義、ネスト interface、联合型推論などを含み、React、Vue、Angular または Node.js プロジェクトに直接コピーして使用できます。ダウンロードファイル名は `${interfaceName}.ts` で、User.ts のようになります。
JSON の解析に失敗した場合は?
JSON に末尾カンマ、引用符の欠損、シングルクォートによるダブルクォートの置換などの一般的なエラーがある場合、ツールは自動的に tryFixJSON を呼び出して修復を試みます。修復が成功した場合はユーザーに通知します。修復できない場合は右側に具体的なエラー位置と理由が表示されます。2/4 スペースインデントで再フォーマットしてから再試行できます。
どの JSON データ構造に対応していますか?
すべての有効な JSON データ構造に対応:基本型(null、boolean、number、string)、配列(一次元または多次元)、ネストオブジェクト(任意の深さ)、混合型配列(联合型を生成)。未対応の入力:JSON に関数、Symbol、undefined などの JavaScript 特殊値を含む場合(これらは有効な JSON ではありません)。
インデントのスペース数を選択できますか?
はい。ツールバー右側にインデント設定ドロップダウンがあり、2 スペースと 4 スペースの 2つのスタイルをサポートしています。2 スペースは ESLint/Prettier のデフォルトスタイルで、4 スペースはより緩いインデントが必要なプロジェクトに適しています。生成されるコードは一貫したインデントを保ち、読みやすく保守しやすくなっています。
JSON Schema、Zod などの型ライブラリとの違いは何ですか?
JSON Schema はランタイムデータ検証(API 境界、ユーザー入力検証)に適しています。Zod/yup は TypeScript フレンドリーなランタイム検証ライブラリで、schema から TS 型を逆生成できます。本ツールは軽量な純粋な型定義ジェネレーターで、ランタイム検証は行わず、フロントエンドの静的型定義シナリオに特化し、より高速でゼロ依存です。
トラブルシューティング
生成された interface が正しくない場合は?
一般的な原因:JSON 解析失敗、ネストオブジェクト認識エラー、配列型推論エラー。解決:1) JSON が有効か確認(JSON フォーマットツールを使用);2) ネストオブジェクトの場合、サブ interface の参照関係を確認;3) 配列の場合、要素型が一致しているか確認;4) 再生成または手動で微調整。生成された interface は初稿であり、プロジェクトの実際の API に応じて詳細を調整する必要があります。
ダウンロードした .ts ファイルがプロジェクトでコンパイルエラーを起こす?
考えられる原因:1) tsconfig.json で strict モードが有効になっていないが readonly フィールドが生成された;2) インターフェース名がプロジェクト内の他の型と競合;3) フィールド名が TypeScript キーワード(例:`class`、`type`)。解決:tsconfig の strict 設定を調整、インターフェース名を変更、競合するフィールドに引用符エスケープを追加(例:`"class": string`)。
JSON にネスト配列が含まれていて、型推論が正しくない?
本ツールは多次元配列(例:`[[1, 2], [3, 4]]`)を再帰的に処理し、最終的に `number[][]` を生成します。ネスト配列の要素型が一致しない場合、ツールは `((A | B)[])[]` 形式を生成します。空配列は常に `any[]` を生成します(要素型を推論できないため)。
null 値がオプショナルフィールドではなく `null` 型にマッピングされる?
デフォルトでは、ツールは JSON 内の null 値を TS の `null` 型にマッピングします(例:`middleName: null`)。オプショナルフィールド(`middleName?: string`)を生成したい場合は、1) 「オプショナルフィールド」オプションを有効化(推奨);2) または JSON の null 値をフィールド欠損に変更;3) または生成後に手動で `null` を `string | null` または `?` に変更。
インターフェース名とダウンロードファイル名が一致しない?
ツールでは両方とも同じ値で、「interface 名」設定によって制御されます(デフォルト Root)。ダウンロードファイル名は `${interfaceName}.ts` です。一致しないように見える場合は、複数のタブが開いていて設定が同期していない可能性があります。設定変更後に再生成することをお勧めします。
生成されたコードに大量の `any` 型が含まれている?
考えられる原因:1) JSON に認識できない型が含まれている(実際には object だが解析エラー);2) 配列が空のため any[] フォールバック;3) フィールド値が null でオプショナルフィールドが有効になっていない。解決:JSON データの完全性を確認、サンプルデータを追加してツールの推論を向上、常に空の配列には手動で型を指定(例:`User[]`)。
生成された interface を既存の型とマージしたい?
TypeScript interface は宣言マージ(declaration merging)をサポートし、同名の interface は自動的にプロパティをマージします。プロジェクト内で同じ名前の interface を作成して export するだけでマージされます。例えばツールが `export interface User { id: number }` を生成し、プロジェクトで `export interface User { name: string }` を書くと、両者は自動的に `{ id: number; name: string }` にマージされます。
用語集
- JSON (JavaScript Object Notation)
- JavaScript オブジェクト構文に基づくがプログラミング言語に依存しない、軽量なデータ交換フォーマット。オブジェクト ({}), 配列 ([]), 文字列, 数字, ブール値, null の 6 つの基本型をサポートします。REST API、フロントエンドとバックエンドのデータ転送、設定ファイル、ログなどのシナリオで広く使用されています。
- TypeScript
- Microsoft が開発した JavaScript のスーパーセットで、JavaScript に静的型定義、インターフェース、ジェネリクスなどの特性を追加します。TypeScript コードはプレーン JavaScript にコンパイルされ、ブラウザまたは Node.js で実行されます。React、Vue、Angular などの現代フロントエンドプロジェクトの好まれる言語です。
- インターフェース (interface)
- TypeScript でオブジェクト型を記述するキーワードで、構文は `interface Name { prop: type; }`。宣言マージ(同名 interface 自動マージ)、implements(クラスがインターフェースを実装)、extends(インターフェース継承)をサポートします。TypeScript でオブジェクトの形状を記述する主要な方式です。
- type エイリアス
- TypeScript で型に別名を付けるキーワードで、構文は `type Name = ...`。联合型 (`A | B`)、交差型 (`A & B`)、関数型などの定義に使用できます。interface より柔軟ですが宣言マージはサポートされません。本ツールは type ではなく interface を一律使用します。
- 型推論 (Type Inference)
- 本ツールが JSON value の typeof と具体的な形式に基づいて対応する TS 型を自動決定するプロセスです。例えば typeof string は string にマッピング、Array.isArray() がヒットした場合は配列として処理、typeof object がヒットした場合は独立したサブ interface を生成します。
- オプショナルフィールド (?)
- TypeScript でフィールドが省略可能であることを示す修飾子。`name?: string` は name フィールドが存在しない可能性があることを示します(値は undefined)。本ツールの「オプショナルフィールド」オプションを有効にすると、値が null または undefined のフィールドに自動的に `?` が追加されます。
- 読み取り専用フィールド (readonly)
- TypeScript でフィールドが不変であることを示す修飾子。`readonly id: number` は id フィールドがオブジェクト作成後に再代入できないことを示します。本ツールの「読み取り専用フィールド」オプションを有効にすると、すべてのフィールドに自動的に `readonly` が追加されます。
- 联合型 (Union Type)
- TypeScript で値が複数の型のいずれかであることを示す構文で、`A | B` と記述します。本ツールは配列要素の型が一致しない場合に使用し、例えば `(string | number)[]` は配列要素が string または number である可能性があることを示します。
- 配列型 (Array Type)
- TypeScript で配列を示す構文で、2 つの形式があります:汎用形式 `Array<T>` と短縮形式 `T[]`。本ツールは短縮形式を一律使用します。本ツールには 3つの配列型生成モードがあります:一貫型 `T[]`、混合型 `(A | B)[]`、空配列 `any[]`。
- ネストインターフェース (Nested Interface)
- インターフェース内で他のインターフェースを参照して型階層を形成すること。本ツールは各ネストオブジェクトに対して独立したサブ interface を生成し、メインインターフェースはプロパティ名で参照します。例えば Root は RootAddress を参照し、RootAddress は他の型から独立して参照できます。
- TypeScript strict モード
- TypeScript コンパイラの厳格モードで、noImplicitAny、strictNullChecks、strictFunctionTypes などの複数のサブオプションを含みます。strictNullChecks を有効にすると、null と undefined は独立した型になり、他の型変数に代入できません。本ツールが生成するオプショナルフィールドは strict モードと完全に互換性があります。
- DTO (Data Transfer Object)
- データ転送オブジェクトで、異なる層(API と Service 層など)間でデータを転送するために使用されます。TypeScript プロジェクトでは通常 interface で記述され、readonly と組み合わせて不変性を強調します。本ツールは DTO 型定義を生成する一般的なツールです。
- 宣言マージ (Declaration Merging)
- TypeScript interface の特性:同じ名前の interface は自動的にプロパティをマージします。サードパーティライブラリの型定義を拡張する際によく使用されます。本ツールが生成する interface はプロジェクト内の他の同名 interface とマージでき、段階的な型拡張を容易にします。
- tsconfig.json
- TypeScript プロジェクトの設定ファイルで、プロジェクトのルートディレクトリにあります。compilerOptions(target、module、strict など)、include、exclude などの設定を含みます。本ツールが生成する .ts ファイルは標準の tsconfig プロジェクトでそのまま使用できます。
- tryFixJSON
- 本ツール内蔵の JSON 修復関数で、末尾カンマ、シングルクォートによるダブルクォートの置換、欠損引用符の key、コメントなどの一般的な JSON 構文エラーを自動処理します。JSON.parse が失敗したときに自動的に呼び出され、修復が成功した場合はユーザーに通知して変換を続行します。
JSON 型から TypeScript 型へのマッピングルール
本ツールの getTsType 関数が JSON value の形式に基づいて TypeScript 型を推論する完全なルール:
| JSON 値 | 例 | TypeScript 型 | 判定ルール |
|---|---|---|---|
null | null | null | JSON null は直接 TS null 型にマッピング |
undefined | undefined | undefined | undefined 値は TS undefined にマッピング(ランタイムのみ存在) |
boolean | true / false | boolean | typeof boolean は TS boolean にマッピング |
integer | 1, 100, -9999 | number | 整数と浮動小数点数はどちらも TS number にマッピング |
float | 3.14, -0.5, 1e10 | number | すべての数値リテラルは number にマッピング(TS は整数と浮動小数点を区別しない) |
string | "Alice", "東京" | string | typeof string は TS string にマッピング |
empty array | [] | any[] | 空配列は要素型を推論できないため any[] をフォールバック |
homogeneous array | [1, 2, 3] | T[] (例: number[]) | 要素型が一致する場合は単一の配列型を生成 |
mixed array | [1, "a"] | (A | B)[] (例: (number | string)[]) | 要素型が一致しない場合は联合配列型を生成 |
object | {a: 1, b: "x"} | SubInterface (例: Root) | ネストオブジェクトは独立したサブ interface を生成して参照 |
interface vs type エイリアス比較
本ツールが type エイリアスではなく interface を生成する理由と、TypeScript プロジェクトにおける両者の違い:
| 能力次元 | interface | type エイリアス | 説明 |
|---|---|---|---|
| オブジェクト型記述 | ✓ (推奨) | ✓ (対応) | 両者とも対応、本ツールは interface を生成 |
| 宣言マージ | ✓ (同名自動マージ) | ✗ (重複宣言はエラー) | interface は段階的拡張をサポート、type は不可 |
| implements/extends | ✓ (クラスが implements 可) | △ (オブジェクト type のみ implements 可) | interface は OOP シナリオでより自然 |
| 联合型 (A | B) | ✗ | ✓ | type は联合型の記述がより簡潔 |
| 交差型 (A & B) | ✗ | ✓ | type は交差型の記述がより簡潔 |
| 関数型 | △ (call signature が必要) | ✓ (直接定義可) | type は関数型の定義がより直感的 |
| パフォーマンス (大量型) | やや速い | やや遅い | interface はコンパイル時の増分マージが高速 |
| 本ツールの選択 | ✓ 一律使用 | ✗ | 本ツールはオブジェクト型に特化、interface が最適 |
オプショナルフィールドと読み取り専用フィールドの生成ルール
本ツールの 2 つのスイッチオプションが生成コードに与える影響と最適な使用シナリオ:
| オプション | トリガー条件 | 生成構文 | 最適な使用シナリオ |
|---|---|---|---|
| オプショナルフィールド (?): オフ | (デフォルト) | name: string | すべてのフィールドが必須、型が厳格 |
| オプショナルフィールド (?): オン | value === null || value === undefined | name?: string | オプショナルフィールド、省略可能なデータ |
| 読み取り専用フィールド (readonly): オフ | (デフォルト) | name: string | 汎用型、フィールドは書き込み可能 |
| 読み取り専用フィールド (readonly): オン | すべてのフィールドを一律処理 | readonly name: string | 不変状態、設定、DTO、API レスポンス |
| 両方ともオン | 両方を満たす | readonly name?: string | API レスポンススナップショット、オプショナル設定 |
Privacy & Security
本 JSON→TypeScript ツールのすべての操作はあなたのブラウザローカルで完全に実行されます:JSON 解析、型推論、interface 生成はすべてブラウザ JavaScript によってクライアントサイドで実行され、ネットワーク経由で JSON 内容、アップロードされたファイル、生成されたコードは一切サーバーに送信されません。ファイルアップロードはブラウザネイティブの FileReader API を使用して直接メモリに読み込まれ、中間サービスは経由されません。Cookie 追跡は使用せず、ユーザーの入力や使用データを一切収集しません。ページを閉じるか更新した後、すべての入力と出力内容はメモリから自動的にクリアされます。API キー、トークン、機密業務データを含む JSON の処理に適しています。
Authoritative References
- TypeScriptTypeScript interface 公式ドキュメント
- TypeScriptTypeScript 入門ハンドブック
- MDNJSON 仕様 - MDN Web Docs
- TypeScriptTypeScript Playground オンライン試用
- TypeScripttsconfig.json 設定リファレンス
- ZodZod - TypeScript 優先の schema 検証ライブラリ
- 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