Cookie の使用について.本サイトでは、基本機能の提供に必要な必須 Cookie を使用しています。さらに、同意いただいた場合に限り、アクセス解析 Cookie を利用して利用状況を把握し、サービス改善に役立てます。詳しくは .
このツールは使いやすかったですか?
フィードバックは改善に役立ちます
将JSON数据转换为Crystal类定义,自动生成类型安全的序列化代码。
概要
解決できる課題、処理の仕組み、データの範囲を確認できます。
このページでは、JSONテキストを入力してCrystal向けの型定義コードを生成できます。APIレスポンスや設定ファイルの一例から、オブジェクトの項目、入れ子になった構造、配列などを読み取り、手作業で書き始めるためのコード案にまとめます。入力はJSON、出力はCrystalコードです。生成結果はサンプルに現れた形をもとにした草案で、API仕様書や完全なデータスキーマそのものではありません。
JSONでは、文字列・数値・真偽値・nullのほか、オブジェクトと配列を値として使えます。たとえば{"profile":{"name":"Yuki"},"tags":["dev"]}には、文字列の項目、子オブジェクト、文字列配列が含まれます。サンプルにない項目や、別の応答でだけ現れる型の違いは一件の入力からは読み取れません。
Crystalの標準ライブラリには、型にJSONの読み書きの仕組みを与えるJSON::Serializableがあります。これはCrystal側でのシリアライズ機能であり、この変換ページが生成するコードをコンパイルしたり、プロジェクト内で動作確認したりすることとは別の作業です。出力に含まれる定義や注釈を確認し、利用するCrystalのバージョンと実データに合わせて調整してください。
使い方
手順に沿って操作し、例を使って入力と結果を確認します。
生成したい応答や設定のJSONを入力欄に貼り付けます。画面のサンプルを読み込み、形式を整えてから編集する方法もあります。
ルートの型名を入力します。複数の異なるレコードを表す場合は、代表例だけでなく、項目の有無や値の型が異なるケースもサンプルに含めてください。
Crystalが選択された状態で出力を確認します。詳細設定を開くと「型定義のみ」や共通の推論オプションを確認できます。設定を変えると出力も変わるため、不要な機能を含めないか見直します。
生成コードを読み、必要な部分をコピーするかダウンロードします。利用するCrystal環境でコンパイルし、実データを読み書きする箇所も別途確かめます。
例として、{"id":42,"name":"Yuki","active":true}は数値、文字列、真偽値の各項目を示します。さらに{"id":43,"name":null,"active":false}のような別パターンが実際にあり得るなら、それも確認材料にします。ある項目が欠けるケース、nullになるケース、整数と小数の両方が来るケースは同じ意味とは限りません。型がどう表されているかを出力で確認してください。
入れ子のオブジェクトや配列は、利用予定のデータ形状に合わせて代表的な要素を含めます。空配列だけでは要素型を示せず、混在配列も期待するCrystal型を自動で決められないことがあります。その場合は複数のサンプルを用意するか、生成後に型を手で調整します。
活用例
仕事や日常の流れの中での活用方法を紹介します。
Crystalでクライアントを実装する開発者が、秘匿情報を除いた代表的な応答JSONから型コードの出発点を作り、API仕様書と照合します。
設定JSONをCrystalの型として表したいときに、項目や入れ子構造をコードで確認できます。省略可能な項目や初期値の方針は、アプリ側の要件に合わせて補います。
Crystalを学んでいる人は、JSONの値の種類が型コードにどう表現されたかを見比べ、公式ドキュメントを参照しながらシリアライズの実装方法を学べます。
Q&A
よくある疑問や迷いやすい点をまとめて確認できます。
引用符、カンマ、波括弧・角括弧の対応を確認してください。JSONの文字列内に引用符や改行などを含める場合は、JSONの規則に沿ってエスケープします。画面の整形操作で読み込めない場合も、入力内容の構文を先に見直します。
一つのサンプルだけでは、項目が常に存在するか、nullになり得るか、別の応答では異なる型になるかを確定できません。実際にあり得る複数の応答を用意し、生成された型と任意・nullの扱いを確認してください。
生成物は入力例から作ったコード案です。Crystalのバージョン、フィールド名、値の範囲、欠落項目、シリアライズ時のJSONキーなどをプロジェクトの仕様に照らし、コンパイルと実データで検証してから採用してください。
注意
利用範囲、結果の制限、必要な注意点を事前に確認します。
推定は入力サンプルの範囲に限られます。空配列、混在型、null、未出現のキー、後から追加されるフィールドは、出力だけで将来のデータまで保証できません。項目名の対応や型の幅、必要な注釈、必須・任意の扱いは正式なAPIスキーマや複数の実例と突き合わせてください。
コピーまたはダウンロードしたコードは、対象のCrystalバージョンと依存関係を含むプロジェクトで確認します。入力に認証情報、個人情報、社内データが含まれる場合は、そのまま貼り付けず、値を置き換えたサンプルで構造を確認してください。
関連
関連ツール、特集、利用可能なAPIを探せます。