Claris FileMakerでのJSON活用2
- 田中
- 11 時間前
- 読了時間: 3分

こんにちは、ティーマネジメントの田中です。
FileMaker 2024にて新たにJSONに関する関数、演算子が追加されており、
ますます活用の幅が増えて便利に使えるようになりました。
前回に続き、今回の記事のテーマはJSONです。
今回は、前回ご紹介したFileMakerのJSON関数を用いて、実際のFileMakerで使える事例を2つ紹介したいと思います。
1.WebAPI 郵便番号を自動取得する
JSONはデータのやり取りの形式としても多く採用されています。
その代表例である、郵便番号APIを使用し郵便番号から、JSON形式で住所を取得し、
FileMaker上のフィールドに設定する方法についてご紹介します。
今回はzipcloudのサービスを利用します。


リクエストURLにパラメータをつけて、対象の郵便番号の住所データを取得することができます。
試しに、例で示されているURLを直接ブラウザからアクセスすると、次のようになります。

このデータはJSON形式で記述されているので、どのキーにどの値があるのか
一目でわかるようになっています。
まずはこのデータをFileMaker側のフィールドに格納します。
FileMakerで、URLからデータを取得する際には「URLから挿入」スクリプトステップを使用します。

これによって、ターゲット先であるフィールドにURLから得られた結果を格納することができます。

JSONデータを確認すると、address1 というキーには都道府県が格納されています。
FileMakerの関数を用いて、都道府県の情報を取得したいと思います。
JSONから値を取得するには、JSONGetElement関数を使います。

resultキーの中は配列になっているので、都道府県を取得する際は、
「resultの配列番号0の、address1のキーの値」という記述なります。
関数の記述は次のようになります。
JSONGetElement ( sample::JSON ; "results[0].address1" ) |

住所が1つの場合はこれでよいのですが、
郵便番号には、1つの郵便番号で複数の住所が存在する場合があります。
例)

この場合、resultの配列内は6つの値があるので、指定する配列番号によって結果が変わります。


このような場合、JSONListKeys関数を使用することで、JSON配列内の値がいくつあるか取得し、
場合わけすることによって、複数の結果の場合は処理を分ける、といったことにつなぐことができます。
JSONListKeys ( sample::JSON ; "results" ) |

配列の要素数が6個あることがわかります。
2.引数として複数の値を渡す場合にJSONを使用する

事前にJSONデータを作成します。
JSONデータの作成にはJSONSetElement関数を使用します。
このJSONデータを引数として、スクリプトを実行します。
JSONデータから値を取得するには、「JSONGetElement関数」を使用します。

事前に設定しているキー(ここでは fruit01)から、キーに対応する値を取得することができます。
fruit01 ~ fruit03 までの値をそれぞれスクリプト内で取得します。
この方法で、複数の値を引数として渡すことができます。
JSON関数を使用する利点としては、
引数がずれない、というものがあります。
GetValue関数を用いて、改行区切りで複数の引数を渡す場合、
1行目は○○として扱う、
2行目は××として扱う…
という指定をすることになりますが、
データそのものに改行区切りが入っている場合、指定がズレてしまいます。
キーに対して値が存在する、JSON形式では改行区切りを含むデータであっても、
問題なく変数として使用することができるため、JSONの優れている点の一つだと考えます。
おわりに
最後までご覧いただきありがとうございました。
この記事がなにかのお役に立てば幸いです。