top of page
ティーマネジメント株式会社 Tmanagement
TM_ロゴ_決定分_ol2.png

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の優れている点の一つだと考えます。



おわりに

最後までご覧いただきありがとうございました。

この記事がなにかのお役に立てば幸いです。

CONTACT

お問い合わせ

滋賀県大津市別保三丁目11番32号

077-536-6330

平日10:00~18:00

労働者派遣事業 派 25-300477

有料職業紹介事業  25-ユ-300214 

問い合わせのご用件 必須項目

送信ありがとうございました

Copyright © ティーマネジメント株式会社 All Rights Reserved.

bottom of page