開発・デバッグ支援

JSON → Rust変換

JSONサンプルからserde対応のRust struct定義を自動生成します。ネストしたObjectやArrayにも対応し、処理はブラウザ内で完結します。

入力データはサーバーへ送信されませんインストール不要無料で使えます
生成される型定義は、入力したサンプルJSONからの推論結果です。実際のAPI仕様(省略可能な項目・nullになり得る項目・数値の範囲など)を保証するものではありません。生成後は必要に応じて見直してください。

Rustコード

JSONを入力して「生成」を押してください。

このツールでできること

JSON → Rust変換の主な機能です。

  • JSONサンプルからserde対応のRust structを自動生成できます
  • JSONキーとRustの命名規則が異なる場合にserde renameを自動付与します元のJSONキーを保持します
  • ネストしたObjectを個別のstructとして分離できます
  • Array・Object配列・型混在配列を推論できます
  • 生成結果をワンクリックでコピーできます

使い方

JSONからRust struct定義を生成する手順を説明します。

手順を見る
  1. JSONを貼り付けます
  2. 必要に応じてルートstruct名を指定します既定は「Root」です
  3. 「生成」を押します
  4. 結果を確認し、「コピー」でクリップボードへコピーします

こんなときに使えます

こんな場面でJSON → Rust変換が役立ちます。

利用シーンを見る
  • Rustでserdeを使ったJSONデシリアライズ用structを作りたいとき
  • APIレスポンスのJSONからRustの型定義を素早く用意したいとき
  • JSONキーとRustの命名規則(snake_case)が異なる場合にrename属性を自動付与したいとき

詳しい解説

詳しい解説を見る

型推論のルール

JSONの値をString・bool・整数(i64)・小数(f64)・struct・Vec<T>へ推論します。型混在配列・null単独の値・非常に大きな整数(i64の範囲を超える値)は serde_json::Value として出力します(根拠のない具体型を生成しません)。

serde renameとフィールド名

JSONキーはsnake_caseのフィールド名へ変換し、元のキーと異なる場合は#[serde(rename = "...")]で元のキーを保持します。

よくある質問

structにpubが付くのはなぜですか?

APIレスポンスモデルとして呼び出し元のコードから使いやすくするため、フィールド・structともにpublicで出力しています。

selfやtypeのようなRustの予約語をキーに含むJSONはどうなりますか?

raw identifier(r#)化できる予約語はr#を付けて出力します。self・Self・super・crateのようにraw identifier化できない語は、別の識別子へ変換し、serde renameで元のキーを保持します。

入力したJSONはサーバーへ送信されますか?

いいえ。型生成処理はすべてブラウザ内で完結しており、入力内容がサーバーへ送信されることはありません。