JSON to Rust Struct

JSONをRust言語の構造体(struct)定義に変換します。serde属性・Option<T>対応。

入力データはブラウザ内で処理されます
データはサーバーへ送信されません

変換ツール

0 文字

またはファイルをドラッグ&ドロップ

JSON to Rust Structとは?

JSONデータをRust言語の struct 定義に変換するツールです。

API連携やWebAssembly開発でJSONレスポンスを受け取るための構造体を手書きするのは手間がかかりますが、このツールを使えばJSONを貼り付けるだけでserde対応の構造体を自動生成できます。

主な特徴

  • serde属性(#[derive(Serialize, Deserialize)]#[serde(rename)])の自動付与
  • snake_caseへの自動変換とJSONキー名の保持
  • ネストされた構造体の自動分離
  • Rust予約語の自動エスケープ(raw identifier対応)
  • インストール不要、ブラウザで完結

使い方

  1. 入力欄にJSONテキストを貼り付けます。
  2. 必要に応じてルート構造体名を指定します。
  3. "serde属性を付与" をオンにすると #[derive(Serialize, Deserialize)] とフィールド名の #[serde(rename = "...")] を自動付与します。
  4. "nullをOption<T>に" をオンにすると、null値を含むフィールドが Option<T> 型になります。
  5. "pubフィールド" をオンにすると各フィールドに pub 修飾子が付きます。
  6. 「変換する」をクリックするか、自動変換がオンの場合は即座に結果が表示されます。

よくある質問

serde属性とは何ですか?

serdeはRustで最も広く使われるシリアライズ/デシリアライズライブラリです。JSONのキー名がRustの命名規則(snake_case)と異なる場合、#[serde(rename = "...")]属性で元のキー名を保持しながらRust側はsnake_caseのフィールド名にできます。

ネストされたオブジェクトはどうなりますか?

入れ子になったオブジェクトは自動的に個別のstructとして生成され、親のstructから参照されます。

Rustの予約語と衝突するフィールド名はどうなりますか?

"type" や "match" などのRust予約語と衝突するキー名は、自動的に raw identifier(r#type など)に変換されます。

数値の型はどう判定されますか?

小数点を含む場合は f64、整数の場合は i64 として判定します。より厳密な型(u32など)が必要な場合は手動で調整してください。

データはサーバーに送信されますか?

いいえ、すべての変換処理はブラウザ内で完結します。