Filemakerのサンプルは、本家Filemaker社『JSON 関数の使い方』、『Qiita [郵便番号検索] FileMakerでJSONデータを取り扱う』、カスタム関数とスクリプトは『Modular Filemaker』(MITライセンス)を利用させて頂きました。
JSONデータインポートスクリプトサンプル
- 全レコードを表示
- 対象レコード削除
- URL から挿入 [ 制度情報::json取得用; "http://api.r-assistance.go.jp/v2/supports.json?appkey=0" ] [ 選択 ]
- スクリプト実行 [ 「JSON-FM ( jsonEncodedText )」; 引数: 制度情報::json取得用 ]
- 変数を設定 [ $json_data; 値:Get ( スクリプトの結果 ) ]
- 変数を設定 [ $json_data_count; 値:ValueCount ( #Get ( $json_data ; "supports" ) ) ]
- 変数を設定 [ $roop; 値:0 ]
- Loop
- Exit Loop If [ IsEmpty ( $json_data_count ) or $roop ≥ $json_data_count ]
- 変数を設定 [ $roop; 値:$roop + 1 ]
- 変数を設定 [ $json_data_record; 値:#ListGet ( ( #Get ( $json_data ; "supports" ) ) ; $roop ) ]
- 新規レコード/検索条件
- フィールド設定 [ 制度情報::id; #Get ( $json_data_record ; "id" ) ]
- フィールド設定 [ 制度情報::number; #Get ( $json_data_record ; "number" ) ]
- フィールド設定 [ 制度情報::name; #Get ( $json_data_record ; "name" ) ]
- フィールド設定 [ 制度情報::summary; #Get ( $json_data_record ; "summary" ) ]
- 変数を設定 [ $json_data_record_references; 値:Let ( [ ~data = $json_data_record ;~data = #Get(~data;"references");~data = #ListGet(~data;1)]; ~data )]
- フィールド設定 [ 制度情報::references.names; Let ( [ ~data = $json_data_record_references ; ~data = #Get(~data;"name")];~data )]
- フィールド設定 [ 制度情報::references.url; Let ( [ ~data = $json_data_record_references ; ~data = #Get(~data;"url")];~data )]
- フィールド設定 [ 制度情報::intended_person.description; Let ( [ ~data = $json_data_record ;~data = #Get(~data;"intended_person");~data = #Get(~data;"description")]; ~data )]
- End Loop
- オブジェクトへ移動 [ オブジェクト名: "インポート" ]
JSONデータをボタン一つでダウンロード&インポートしたサンプル動画
Filemaker Pro Advanced 16
Filemaker Go
0 件のコメント:
コメントを投稿