Cookie の使用について.本サイトでは、基本機能の提供に必要な必須 Cookie を使用しています。さらに、同意いただいた場合に限り、アクセス解析 Cookie を利用して利用状況を把握し、サービス改善に役立てます。詳しくは .
このツールは使いやすかったですか?
フィードバックは改善に役立ちます
将JSON数据转换为Go语言结构体定义代码,用于API对接和数据建模。
概要
解決できる課題、処理の仕組み、データの範囲を確認できます。
このツールは入力したJSONを読み取り、対応するGoコードを生成します。オブジェクトのキーと値、配列の要素、入れ子の形がフィールド名や型を決める手がかりになります。APIレスポンスや設定ファイルの代表例からstructのたたき台を作りたいときに使えます。出力にはフィールドとタグが含まれ、型名やパッケージ名も指定できます。
JSONでは値の形として、文字列・数値・真偽値・nullのほか、オブジェクトと配列を使えます。たとえば、数値のID、文字列の名前、複数要素の配列、住所のような入れ子オブジェクトがあれば、その形に沿ったGoの型が生成されます。入力に現れない項目や別のレスポンス形までは分からないため、生成物はデータ契約そのものではなく、サンプルをもとにした下書きです。
Goの構造体フィールドをJSONのキーに結び付けるのがフィールドタグです。たとえば Go の UserName に json:"user_name" を付けると、JSON側のキー名との対応を明示できます。Goの標準JSON処理では、通常エクスポートされたフィールドがエンコード対象となり、タグでJSON名やオプションを指定できます。
タグの選択ではJSONのみ、YAMLのみ、またはJSONとYAMLの両方を指定できます。omitempty はGoからJSONへエンコードするとき、空値のフィールドを省略するための指定です。入力JSONにあるフィールドを必須にしたり、欠落時の値を決めたりする設定ではありません。用途に合うタグを選び、実際の入出力で意図どおりかを確かめてください。
使い方
手順に沿って操作し、例を使って入力と結果を確認します。
APIや設定ファイルから、必要な入れ子や配列を含むサンプルを貼り付けます。入力はJSONとして正しい形式にしてください。フォーマットボタンでインデントを整えたり、サンプルボタンで例を読み込んだりできます。
出力のルート型名を入力します。詳細設定ではpackage名、型定義のみを出す設定、フィールドタグの種類、空値を省略するomitemptyを選べます。最初は既定値で生成し、必要な場合にだけ変更すると比較しやすくなります。
入力や設定に応じて出力が更新されます。フィールド名、型、入れ子、タグを確認し、コピーまたは.goファイルとしてダウンロードします。プロジェクトに組み込んだ後、使用中のGo環境でコンパイルし、実データでデコードとエンコードを確認してください。
活用例
仕事や日常の流れの中での活用方法を紹介します。
レスポンス例からフィールドと入れ子の形を作り、タグを確認しながら受け取り用structの草案を用意します。エラー応答や任意項目など、別パターンのサンプルも後から照合します。
設定例を入力してGo側の型の出発点を作ります。環境ごとに省略されるキーや空値の意味を確認し、必要ならタグや型を調整してから実装に使います。
よく使うJSONの形をstructに置き換える検討材料にできます。生成コードだけで仕様を確定せず、既知のサンプルとAPI仕様を並べて差分を洗い出します。
Q&A
よくある疑問や迷いやすい点をまとめて確認できます。
引用符、カンマ、コロン、括弧の対応を見直してください。JSONとして解析できない入力からは、その内容に対応するコードを生成できません。フォーマット操作も入力の解析に成功する必要があります。
いいえ。推論の根拠は入力したJSONです。任意項目、別のレスポンス形、将来追加されるフィールドは、API仕様や複数の実例で確認して手作業で補ってください。
生成されるJSONタグにomitemptyが付き、GoからJSONへエンコードするときに空値のフィールドを省略する指定になります。入力側で項目を必須にする機能ではありません。空値も明示して返す必要がある場合は、選択前にプロジェクトの要件を確認してください。
Goのフィールドタグ設定で「JSON + YAML」を選ぶと、両方のタグを生成できます。利用するエンコーダーやプロジェクトの規約に合わせ、出力を確認してください。
注意
利用範囲、結果の制限、必要な注意点を事前に確認します。
一つのJSONサンプルから、フィールドが常に存在するか、値の型が常に同じかまでは判断できません。とくにnull、空配列、数値の整数・小数、同じキーに複数の形が現れる場合は、実際のデータで型が合うかを確かめてください。必要に応じてポインター型、より汎用的な型、独自のデコード処理へ変更します。
生成コードは対象プロジェクトでのコンパイルやAPIテストを済ませた完成品ではありません。型名やpackage名、フィールドのエクスポート可否、タグ、複数サンプル間の差をレビューし、使用するGoのJSON処理とチームの規約に沿って調整してから採用してください。
関連
関連ツール、特集、利用可能なAPIを探せます。