JSONを理解して FileMaker 開発をステップアップしよう2〜 FileMaker でJSONを使おう

 皆さんこんにちは!株式会社サポータスで FileMaker とWebの開発をしているOrita Koyaです。

 前回私が書いたJSONを理解して FileMaker 開発をステップアップしよう1の続きで、いよいよ FileMaker でJSONを扱っていきます。

 今回はまず皆様がJSONを使えるようになるために、シンプルな内容でJSONの使い方を共有できればと思っています。

JSONSetElementとJSONGetElement

 前回の記事では記事作成時点での全てのJSON関数を列挙しましたが、一旦忘れてください。
 その代わりこの2つだけ、覚えましょう!
 極論を言えば、この2つの関数さえ理解していれば FileMaker でJSONを扱えます

  さて、このJSONSetElementとJSONGetElementを紹介する前に、今回の記事で利用するテンプレートのスクリプトを説明します。簡単ですので、ご安心を!

行1: 変数$JSONに文字列{}を挿入します。つまり、$JSONに空のオブジェクトを挿入します。

行3: 変数$JSONに値を入れていきます。ここは当ブログの進行によって変化します。

行5: 変数$確認用JSONに、JSONFormatElementsでJSONを人から見やすくした$JSONを設定します。
 ※JSONFormatElementsは改行を入れるなどして、JSONを整えてくれる関数です。
  FileMakerでJSONを扱う際に必須ではないので、整えてくれるとだけ覚えておけば大丈夫です。

行6:スクリプトを終了します。

JSONSetElement

 こちらの関数を簡単に説明すると、JSONオブジェクトにキーと値を追加(Set)することのできる関数です。

 使い方は

 JSONSetElement(JSONオブジェクト; キー; 値; 値のタイプ)

 をスクリプトステップ:変数を設定の計算式に入れて利用します。

 キーと値は説明しましたが、値のタイプという言葉が出てきました。これが何を意味しているのかと言いますと、セットする値が、文字列か数字か、はたまたそれ以外かを指定する箇所です。

 JSON~、などといった文字列で指定することができます。

1. JSONString :文字列
2. JSONNumber :数字
3. JSONObject :JSONオブジェクト
4. JSONArray :JSON配列
5. JSONBoolean :論理値
6. JSONNull :Null
7. JSONRaw :JSON要素

 色々ありますが、とりあえず1のJSONStringと2のJSONNumberを使えればなんとかなります。当記事でも、この2つの値のタイプのみを利用して以降の記事を進めていきます。

 テンプレートスクリプトでJSONGetElementsを使っていきます。

 

 このスクリプトでは、変数$JSONにキー名”supportas”、値を”FileMaker”でJSONデータを作成しています。

 $確認用JSONを見てみましょう。

 値は入っているのでしょうか。

 無事、JSONSetElementで値を入れられていることが確認できました!
 簡単ですよね。

 補足として、キーが既に存在している場合にJSONSetElementでそのキーを指定すると、キーの値が上書きされます。
 これを利用することで、自分が予め作成したJSONデータの値を変更することができます。

 次は、1行目の「テキストを挿入」に、画像のJSONデータを入れます。

 いくつかの値をで空の文字列””にしているのと、TELを0の文字列にしています。
 JSONSetElementで値を入れてみようと思います。

 supportasオブジェクトの中にあるキーを指定する場合は、この指定を行います。
 オブジェクト名.キー で値を指定することが可能です。

 今回は、会社の設立日を設定しています。数字なので、JSONNumberをタイプに指定しています。

 他にも抜けがあるので、一気に値を入れていきましょう。
 JSONSetElementは、複数同時に設定することが可能です。

 計算式はこちらです。

 []を使うことで、複数指定が可能になります。

 実行したJSONを確認してみます。

 無事、値が入っていました!

 順番がバラバラな理由は、前回の記事でご説明した通りJSONでは基本的に値の順番が保持されないからです。
 保持したい場合は、配列を使います。
 配列は”配列名[インデックス番号]”で指定可能です。

 では、この入れた値を取得してみましょう。取得する場合は、JSONGetElementを使います。

JSONGetElement

 JSONの値を取得するなら、まずこの関数です。
 JSONSetElementを活用できていれば、簡単に使いこなせるのでご安心下さい!

 テンプレートのスクリプトを少しだけ変更します。

1行: JSONSetElementの項目で利用した、歯抜けのJSONオブジェクトにテキストを挿入しています。

3行: 同じくJSONSetElementの項目で利用した、複数指定のJSONSetElement計算式です。

4行: これから設定していくスクリプトステップです。

6行: スクリプトを終了します。

 まずは弊社の社名をJSONGetElementで取得してみましょう!

 使い方は

 JSONSetElement(JSONオブジェクト; キー;)

 をスクリプトステップ:変数を設定の計算式に入れて利用します。

 指定する内容がJSONGetElement関数よりも少ないので、すぐ覚えられると思います。
 4行目の確認用に、JSONGetElementを使用します。

 実行し、データビューアで確認してみます!

 無事、値を取得できていることが確認できました!

 配列の場合も指定方法はJSONSetElementと同じく
 ”配列名[インデックス番号]”で取得可能です。

JSONを利用して複数のスクリプト引数を設定する

 本来、複数の値を引数に持たせる場合は改行コードなどを使う必要がありますが、JSONを利用すれば簡単に複数の引数を活用できます。
 ボタンに対して、JSONSetElementで複数の値を設定してみます。

 空のJSONオブジェクト{}を指定
 キーAに株式会社を文字列タイプで指定。
 キーBにサポータスを文字列タイプで指定。

 今回は、この引数を合体させてみましょう。

 スクリプトはこちらで、最後にデータビューアで値を確認します。

 スクリプトを説明します。

1行: $値Aにスクリプト引数、JSONオブジェクトのキーAを設定する。

2行: $値Bにスクリプト引数、JSONオブジェクトのキーBを設定する。

4行: $値Aと$値Bを結合。

6行: スクリプトを終了。

 ボタンを押してデータビューアを確認します。
 上手くいくと株式会社サポータスと値が設定されているはずです。

 成功しました!

 値に対してキーを持たせることができるので、スクリプト引数で渡ってくる値が、どういう意味を持つのか把握しやすいことも FileMaker でJSONを利用するメリットです。

まとめ

 今回紹介したJSON関数以外の使い道ももちろんありますが、とりあえずこの2つの関数を使いこなせれば、JSONを FileMaker でも利用することが可能です。

 ここまで見ていただいた方は3つのスキルを取得できました!

 1.JSONSetElementで値を設定できる。
 2.JSONGetElementで値を取得できる。
 3.スクリプト引数にJSONオブジェクトを利用できる。

 シンプルなケースのみ紹介しましたが、これらを組み合わせると複雑なJSONオブジェクトを作成して、処理に利用することも可能です。千里の道も一歩から!

 また機会があれば是非サポータスの開発ブログ記事を閲覧頂けますと幸いです!

 それでは!

Orita Koya

サポータスにFileMaker開発者として入社し、現在はWebアプリケーション開発者として勤務。 趣味はPCゲーム全般。 寝るとき以外は基本PCデスクの前にいる。

ロゴ:Claris Partner PLATINUM
Claris パートナーの中でも最上位のPLATINUMレベルメンバーとして、Claris FileMaker を活用したソリューションを提供いたします。
FileMaker 、ファイルメーカー、 FileMaker Cloud 、 FileMaker Go およびファイルフォルダロゴは、
Claris International Inc. (旧 FileMaker, Inc.)の米国および/またはその他の国における登録商標です。
アイコン:ページトップへ