データセットに JSON形式のデータを格納する

Written by Chikako Yonezawa on Posted in TOOLS

RESTデバッガは、サービスに接続し、要求を送信してその応答を表示することができます。また確認した接続情報をコンポーネントにコピーして、簡単に Delphiや C++Builderで REST アプリケーションを作成することができます。
そして、取得した JSON形式のデータは TRESTResponseDataSetAdapter コンポーネントを使ってデータセットに変換することができます。
では、実際に試してみましょう。

    RESTデバッガでサービスに接続する

サービスに接続して、JSON形式のデータを受け取るには、TRestRequest, TRESTResponse, TRESTClientのコンポーネントとその設定が必要となりますが、RESTデバッガを使用することで、接続の確認や、その設定をコンポーネントに反映させることが容易にできます。

  1. RESTデバッガを起動します。RAD Studio/Delphi/C++Builder XE7の場合 IDEのメニューから [ツール|RESTデバッガ]で起動することができます。
  2. 「要求」タブの URLの部分に http://www.songsterr.com/a/ra と入力します。
  3. Hide image
    Click to see full-sized image
  4. 「パラメータ」タブのリソースの部分に songs.json と入力します。
  5. 要求パラメータの[追加]ボタンを押し、表示されたパラメータの追加ダイアログで
    種類: GET/POST
    名前: pattern
    値: Rolling Stones
    をセットし[適用]ボタンをクリックします。
  6. Hide image
    Click to see full-sized image
  7. [要求の送信]ボタンをクリックします。
  8. 応答結果が返却されます。「ヘッダー」「Body」「表データ」のタブをクリックすると返却されたJSONデータを確認することができます。
  9. Hide image
    Click to see full-sized image
  10. [コンポーネントのコピー]のボタンをクリックします。
    これにより現在設定された接続情報を反映した TRestRequest, TRESTResponse, TRESTClientのコンポーネントがクリップボード上にコピーされます。

参考: http://docwiki.embarcadero.com/RADStudio/XE7/en/Using_the_REST_Debugger

    JSONデータをデータセットに格納するアプリケーションを作成する

RAD Studio/Delphi/C++Builder でアプリケーションを作成します。なお、この記事では XE7を使用しています。

  1. IDEのメニューより [ファイル|新規作成|マルチデバイスアプリケーション - Delphi]または [ファイル|新規作成|マルチデバイスアプリケーション - C++Builder]を選択します。
  2. 「空のアプリケーション」を選択して [OK]ボタンをクリックします。
  3. IDEのメニューより [編集|貼り付け]を選択します。(Ctrl+Vでも同じ)するとクリップボード上にコピーされていた3つのコンポーネントがデザイナ上に配置されます。
  4. ツールパレットから TButton, TStringGrid, TFDMemTable, TRESTResponseDataSetAdapter をフォーム上に配置します。
    この図では解りやすいように左上に固まっているコンポーネントを動かしてあります。
  5. Hide image
    Click to see full-sized image
  6. RESTResponseDataSetAdapterの DataSet プロパティに FDMemTable1 を、ResponseJSON プロパティに RESTResponse1 を設定します
  7. Button をダブルクリックして OnClick イベントハンドラを作成し、以下のコードを記述します。
    Delphiの場合
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      RESTRequest1.Execute;
      FDMemTable1.Open;
    end;
    
    C++Buildeの場合
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
      RESTRequest1->Execute();
      FDMemTable1->Open();
    }
    //---------------------------------------------------------------------------
    
  8. Visual LiveBindingデザイナを開き、FDMemTable1 の *と StringGrid1 の *を線で結びます。
  9. Hide image
    Click to see full-sized image
  10. IDEのメニューより [実行 | 実行] でアプリケーションを動作させ、ボタンを押すと JSONデータをデータセット側に読み込み、そのデータが StringGrid上に表示されます。

Hide image
Click to see full-sized image

Tags: Delphi C++Builder Components Web Technologies Tools



Check out more tips and tricks in this development video: