JSON入力

Ruby出力

JSONをRubyとは?

Rails APIクライアントやサードパーティサービスを呼び出すRubyスクリプトを作っているなら、JSONが返ってきます。生のハッシュをあちこちで扱いたくなければ、適切な属性アクセサを持つRubyクラスが必要です。JSON仕様はシンプルですが、Rubyで型付きデータを扱うには明示的なクラス定義が必要です — このツールは自動生成します。

attr_accessorでgetter/setterメソッドを有効にしてください。出力はRuby規約に従いsnake_caseで属性名を使用します。

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

JSONをRubyが役立つ場面

RailsやRubyアプリでREST APIを消費する際、型付きクラスが必要です。

使い方

1

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

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

2

生成されたクラスを確認

右パネルに生成されたRubyクラスが表示されます。無効なJSONの場合は先にJSONフォーマッターまたはJSONバリデーターで修正してください。

3

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

コピーまたはダウンロードでコードを取得してください。RailsまたはRubyプロジェクトに貼り付けてください。

JSONをRubyの例

JSONオブジェクトからRubyクラスを生成する例です。

例:加入者レコード

JSON入力:

入力

生成されたRuby出力:

出力

JSONをRubyが役立つ場面

REST API統合時に必要です。ここに貼り付けるとJSON.parseで使えるRubyクラスが得られます。

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

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

よくある質問

JSONをRubyクラスにパースするには?

JSON.parse(json_string)を呼び出してHashを取得し、イニシャライザでキーをクラスの属性にマッピングします。より早い方法:ここでRubyクラスを生成してください — JSONを貼り付け、出力をコピーして、ハッシュキーをattr_accessorフィールドにマッピングするイニシャライザを追加します。

Rubyのattr_accessorとは?

attr_accessorはインスタンス変数のゲッターとセッター両方のメソッドを作成します。Rubyのパブリックプロパティに相当します。アクセスを制限したい場合はread-onlyにattr_reader、write-onlyにattr_writerを使います。

RubyでJSONキー名をどう扱う?

Rubyの慣例はsnake_caseですが、JSONはよくcamelCaseを使います。ジェネレーターが自動的にsnake_caseに変換します。実行時はJSON.parse(json_string, symbolize_names: true)またはRailsのHashWithIndifferentAccessなどのライブラリで柔軟にキーアクセスできます。

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

いいえ。クラス生成はブラウザ内で完全に実行されます。JSONがあなたのマシンを離れることはありません。

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

ネストされたJSONオブジェクトは独立したRubyクラスになります。配列はそれらのクラスインスタンスの配列になります。JSON構造を完全にモデル化するために、親クラスのイニシャライザでネストされたクラスをインスタンス化できます。

関連ツール

Ruby JSONはJSONを参照。JSONはJSON仕様を参照。RailsはRailsを参照。