JSONデータソースの使い方(基本編)では、JSONデータソースがどのようなものか説明させてもらいました。

今回は、実際にJSONデータソースをリストビューに設定する手順を紹介させてもらいます。

無料で利用できるNHKの番組表公開APIを使用して、リストビューに番組表情報を反映させたいと思います。

このページでは以下のことがわかります!

  • Forguncyでの、JSONデータソースの使用事例が分かる
  • JSONデータソースの取り扱い方法が分かる

このページの想定読者

  • HTTPリクエストコマンドでWeb API経由で情報を取得したい方
  • SQLクエリー実行コマンドで複雑な条件でデータを取得して、その後の処理で使いたい方
  • 出来ることを増やして、わくわくしたい人

このページの情報はV8以降で動作確認済みです。

準備

NHKの番組表公開APIを使用るためにはAPI Keyを取得する必要があります。まずは、その手順を説明していきます。

  • ユーザ登録
  • アプリ作成
  • API Key取得

ユーザ登録

NHK番組表APIのページを開き、ユーザ登録を行う。

  • 「ユーザ登録がお済みでない方はコチラ」のボタンをクリック
  • Create your account画面で、各項目を入力し、「I agree to the terms」にチェックを入れ、「Create Account」ボタンをクリック

アプリ作成

  • Sign in画面でメールアドレス、パスワードを入力して「SIGN IN」ボタンをクリック(アカウント作成直後は、この作業が不要な場合があります)
  • Sign in直後の画面で「登録済みアプリはこちら」のボタンをクリック
  • 続いて表示される画面で「+NEW APP」ボタンをクリック
  • NHK番組表APIを有効にして、API Keyを取得

JSONデータソースのリストビュー設定

  • NHK番組表APIの仕様確認
  • リストビュー設定用のテーブルを作成
  • リストビューの設定
  • NHK番組表APIから取得したJSONデータソースをリストビューに反映

NHK番組表APIの仕様確認

  • Sign in直後に表示される画面で、「Program List API」のリンクをクリック
  • Resource URLの仕様確認
  • 「指定したパラメータで試してみる」をクリックして、Respons Exampleから、APIの戻り値の仕様を確認
Resource URL

https://api.nhk.or.jp/v2/pg/list/{area}/{service}/{date}.json?key={apikey}

Respons Example

{
  "list": {
    "g1": [
      {
        "id": "2025101202993",
        "event_id": "02993",
        "start_time": "2025-10-12T04:15:00+09:00",
        "end_time": "2025-10-12T04:20:00+09:00",
        "area": {
          "id": "360",
          "name": "徳島"
        },
        "service": {
          "id": "g1",
          "name": "NHK総合1",
          "logo_s": {
            "url": "//www.nhk.or.jp/common/img/media/gtv-100x50.png",
            "width": "100",
            "height": "50"
          },
          "logo_m": {
            "url": "//www.nhk.or.jp/common/img/media/gtv-200x100.png",
            "width": "200",
            "height": "100"
          },
          "logo_l": {
            "url": "//www.nhk.or.jp/common/img/media/gtv-200x200.png",
            "width": "200",
            "height": "200"
          }
        },
        "title": "ワンポイント手話(14)趣味 ※字幕スーパー",
        "subtitle": "初歩的な手話の単語を25回に分けて紹介します。最終的には手話で簡単な自己紹介をできるのが目標です。読書、俳句など、趣味を表す手話を学習します",
        "content": "日常生活に欠かせない初歩的な手話の単語や会話を25回に分けて紹介します。通しでごらんいただき、最終的には手話で簡単な自己紹介ができるようになるのが目標です。講師の河合優子さん、サブ講師の所智子さん、生徒役石川寛和さんはいずれも、中途失聴および難聴の当事者です。読書、俳句など、趣味を表す手話を学習します",
        "act": "【出演】河合優子,所智子,石川寛和",
        "genres": [
          "1104"
        ]
      },
      {
        "id": "2025101202994",
        "event_id": "02994",
        "start_time": "2025-10-12T04:20:00+09:00",
        "end_time": "2025-10-12T04:25:00+09:00",
        "area": {
          "id": "360",
          "name": "徳島"
        },
        "service": {
          "id": "g1",
          "name": "NHK総合1",
          "logo_s": {
            "url": "//www.nhk.or.jp/common/img/media/gtv-100x50.png",
            "width": "100",
            "height": "50"
          },
          "logo_m": {
            "url": "//www.nhk.or.jp/common/img/media/gtv-200x100.png",
            "width": "200",
            "height": "100"
          },
          "logo_l": {
            "url": "//www.nhk.or.jp/common/img/media/gtv-200x200.png",
            "width": "200",
            "height": "200"
          }
        },
        "title": "名曲アルバム「“ニュルンベルクのマイスタージンガー”前奏曲」 ワーグナー作曲",
        "subtitle": "美しい海の都・ベネチアに魅了されたワーグナー。「ニュルンベルクのマイスタージンガー」完成の背景には、ベネチアに残された、とある絵画との出会いがあった。",
        "content": "ベネチア(イタリア)",
        "act": "【指揮】広上淳一,【管弦楽】NHK交響楽団",
        "genres": [
          "0402",
          "1002",
          "0801"
        ]
      }
    ]
  }
}

リストビュー設定用のテーブルを作成

Respons Exampleの内容をもとに、下記の情報をリストビューに反映する。
「番組表データー一時保管用」という名前で、カラムは下記をデータ型はすべてテキストで設定する。

  • タイトル(title)
  • サブタイトル(subtitle)
  • 開始時刻(start_time)
  • 終了時刻(end_time)
  • 番組内容(content)
  • 出演者(act)

リストビューの設定

今回はシンプルに全項目をリストビューに設定します。個人的に行ヘッダーを出したい派のため、行ヘッダー列も追加しています。

JSONデータソースをリストビューに反映

今回の抽出条件は固定とさせてもらいます。
 地域ID  :360(徳島県)
 サービスID:g1(NHK総合)
 日付   :実行日
※これらのコードは、NHK番組表API(ドキュメント リクエスト説明)から確認できます。

番組表データの取得処理は、「番組表を取得」ボタンをクリックした際のコマンドで設定します。

ここから、「番組表を取得」ボタンのコマンドの説明です。設定するコマンド以下になります。

  • HTTPリクエストの送信
  • JSONのシリアライズ
  • JSONデータの設定(リストビュー)
HTTPリクエストの送信

URL:Resource URLをもとに、数式でURLを作成

 "https://api.nhk.or.jp/v2/pg/list/"&H9(地域IDのセル)&"/"&U9(サービスIDのセル)&"/"&TEXT(AI9(日付のセル),"yyyy-MM-dd")&".json"


リクエストボディの設定

 プロパティ設定を選択し、データの形式は「オブジェクト」を選択する。
「+」ボタンをクリックして、キー項目を追加する。「..」ボタンをクリックすると入力用ダイアログが表示されます。
 【追加するキー項目】キー:Key 値:取得したAPI Key


結果を格納するパラーメーター名の設定

 今回は、「result_json」で設定する。


JSONのシリアライズ

下記で設定する。

 オブジェクト:result_json(結果を格納するパラーメーター名)
 結果を格納する変数名:program_data

※JSONのシリアライズの目的は、取得したJSON形式の文字列データをJSONデータソースとして使用するための前処理になります。詳細についてはオンラインヘルプ(JSONのシリアライズ)にて確認ください。

JSONデータの設定(リストビュー)

下記の手順で設定を行う。

  • JSONデータ:「program_data」を設定
  • JSONパスの設定:list.g1を選択
    「サンプルJSONデータの設定」をクリックして、「サンプルJSONデータの設定」ダイアログにRespons Exampleの内容を張り付けることで、JSONパスがコンボボックスで選択できるようになります。
  • リストビューの選択:リストビュー1(本来はちゃんとした名前を付けたほういいと思います)
  • リストビュー列:下記の内容(キー:リストビューの列)で設定
    title :タイトル
    subtitle :サブタイトル
    start_time :開始時刻
    end_time :終了時刻
    content :番組内容
    act :出演者

実際に動かしてみよう

「番組表を取得」ボタンをクリックして、番組表の内容がリストビューに反映されれば成功です。

実際のプロジェクトファイルのダウンロードは、ここから

なお、API Keyには文字列を設定していますので、各自でAPI Key取得の上で更新してご使用ください。
また、サービスIDが「g1:NHK総合」のときのみ正常に動きます。ほかのサービスIDで動くようにする方法は別の機会で紹介させてもらいます。

まとめ

  • 配列構造を持つJSONデータソースであればリストビューに設定することができる
  • 公開APIでJSON形式で取得できる情報はForguncyで扱える可能性がある

JSONデーターソースの扱い方が分かると、さらに開発できる業務範囲が増えると思います。ぜひ、サンプルプロジェクトで復習してみてくださいね。

関連記事

【著者】

Jun

I’m Forguncy lover!

2019年にForguncyに出会い、今では、(自称)日本一のForguncyファンです。アップデート毎に増える機能にいつもワクワクしています。もっと、開発者にForguncyの魅力を知ってもらい、使いこなし、私たちと同じようワクワクする体験をして欲しいと思い、有志とともに2025年6月30日にForguncy Users Communityを立ち上げさせてもらいました。当サイトにアクセスした開発者がワクワクする情報を発信していきたいと思います。