JSON入力

Rust出力

JSONをRustとは?

Rustは構造化データにstructを使用します。SerdeでJSONを消費する際、対応するstruct定義が必要です。このツールはJSONからRust structを生成します。

SerdeでSerialize/Deserializeのderiveを有効にしてください。Option Typesでオプショナルフィールドを設定できます。出力はserde_json::from_strserde_json::to_stringで動作します。

変換は完全にブラウザで実行されます。JSONはサーバーに送信されません。

JSONをRustが役立つ場面

RustアプリでREST APIを消費する際、型付きstructが必要です。サンプルレスポンスを貼り付けるとSerde対応のstructが得られます。

使い方

1

JSONを貼り付けまたはアップロード

JSONを左のエディタに貼り付けるか、アップロードでファイルを読み込んでください。サンプルで例データを読み込めます。設定パネルでstruct名とオプションを設定してください。

2

生成されたstructを確認

右パネルに生成されたRust structが表示されます。ネストオブジェクトは別structに。配列は<code>Vec&lt;T&gt;</code>になります。無効なJSONの場合は先にJSONフォーマッターまたはJSONバリデーターで修正してください。

3

コピーまたはダウンロード

コピーまたはダウンロードでコードを取得してください。Cargo.tomlにserdeserde_jsonを追加してください。

JSONをRustの例

JSONオブジェクトからRust structを生成する例です。

例:加入者レコード

JSON入力:

入力

生成されたRust出力:

出力

JSONをRustが役立つ場面

REST API統合時に必要です。ここに貼り付けるとすぐに使えるSerde互換structが得られます。

2つのJSONをマージするにはJSONマージツールを使用してください。

APIレスポンス、設定ファイル、データエクスポートはJSONが多いです。ここで処理するとRust structを生成できます。

よくある質問

Serdeと手動デシリアライズ?

SerdeはRustのJSON標準です。deriveマクロでSerializeDeserializeを生成します。Cargo.tomlにserdeとserde_jsonを追加してください。

nullフィールドにOption?

オプショナルJSONフィールドにはOption Typesを有効にしてください。nullableフィールドがOption<T>でラップされます。

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

いいえ。生成はブラウザで実行されます。

#[serde(rename)]は使えますか?

はい。Rustフィールド名(snake_case)がJSONキー(camelCase)と異なる場合、ジェネレーターが#[serde(rename = "jsonKey")]を追加します。

ネストオブジェクトは?

ネストJSONオブジェクトは別のRust structになります。配列はそのstruct型のVec<T>になります。

関連ツール

Rust JSONはSerdeserde_jsonを参照。JSONはJSON仕様を参照。