Nouplo

JSONから型を作る

サンプルを入れて、型を受け取る。

例を読み込むと入力と設定が一時的に変わります。元の内容に戻せます。

0文字
出力
上に貼り付けるか入力すると、ここに結果が表示されます。

ファイルは端末の外に出ません

このツールはすべてブラウザ内で動作します。貼り付けた内容は端末内で処理され、サーバーには送信されないため、トークンや鍵、未公開の文章でも安心して使えます。

使用例

例:店舗一覧APIのレスポンスからTypeScriptの型を作る(電話番号が null の店舗あり)

店舗検索ページを作るため、店舗一覧APIのレスポンスを貼り付けた場面です。みなみ町店(水曜定休・駐車場あり・電話番号あり)と駅前店(定休日なし・駐車場なし・tel が null)の2店舗と、更新日 updated_at「2026-10-01」が入っています。設定は TypeScript、型名 StoreListResponse、インデント スペース2つです。

  1. stores は配列なので、中のオブジェクトに Store という型が付きます(フィールド名 stores から複数形の s を外した名前)。2店舗とも同じ項目なので、型は1つにまとまります。
  2. tel は「03-0000-0000」と null の両方があるので string | null になります。電話番号は文字列のまま扱われ、先頭の0が消えることはありません。
  3. closed_on は ["水"] と空の配列 [] ですが、2店舗分をまとめて見るので string[] になります。空の配列しかないと unknown[] になります。
  4. open・close の「10:00」などはただの string です。時刻だとは推測しないので、必要なら自分で型を絞り込みます。
項目 サンプルの値 型
stores 2店舗の配列Store[]
updated_at "2026-10-01"string
id "S001", "S002"string
closed_on ["水"], []string[]
parking true, falseboolean
tel "03-0000-0000", nullstring | null

StoreListResponse と Store の2つの interface(種類数 2)ができ、そのまま types.ts に貼れます。定休日が「月」〜「日」に限られることなどはサンプルからは分からないので、読み直して型を締めてから使います。

使い方

  1. 実際のレスポンスを貼り付けます。作り物より本物1件のほうが役に立ちます。
  2. TypeScript・Go・Zodから選びます。
  3. 最上位の型名を決めます。空ならRootになります。
  4. 結果をコピーし、目を通してください。1件のサンプルからの推論は仕様ではなく下書きです。

よくある質問

配列は最初の要素だけ見るのですか。
すべて見ます。[{a:1},{a:1,b:2}] なら b は optional になります。無いことにしてしまうのが、生成した型が2週間後に邪魔になる原因です。
null はどう扱われますか。
狭めるのではなく広げます。一度 null だった項目は null になり得る項目なので、TypeScriptではユニオン、Goではポインタになります。実際のAPIの挙動はたいていそちらです。
同じ形のオブジェクトは1つの型になりますか。
なります。項目名が同じオブジェクトは同じ名前付き型を共有するので、ユーザーが50件並んでいてもUser型は1つです。
出てきた型はそのまま使えますか。
出発点としては使えます。1件のサンプルからは、その項目が列挙型であること、数値が整数であること、文字列が日付であることは分かりません。目を通して締めてください。省けるのは入力の手間であって、考える手間ではありません。
JSONが配列から始まる場合はどうなりますか。
配列の要素1つ分を表す型が、入力した型名で作られます。要素はすべて読むので、一部にしかない項目は省略可能(?)になります。TypeScript では最後に OrderList = Order[] のようなリストの型も1行追加されます。
数値はなぜ integer ではなく number(Go では float64)になるのですか。
サンプルだけでは、その数値が常に整数かどうか分からないからです。今日の 24 が明日は 24.5 かもしれません。TypeScript と Zod は number、Go は float64 になります。IDや個数が必ず整数なら、Go では int や int64 に、Zod では .int() を付けて直してください。
入力した内容はどこかに送られますか。
いいえ。ブラウザの中で動くので、貼り付けた内容はお使いのパソコンから出ません。

関連ツール