5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

FileMakerAdvent Calendar 2017

Day 3

FileMaker16で追加されたJSON関連の関数を触った話

Last updated at Posted at 2017-12-02

はじめに

FileMaker16でJSONをいい感じに触れる関数が追加されたので
適当なAPIからデータを取得し、表示させるアプリを作ってみた話。

環境

  • FileMaker 16
  • FileMakerGo 16
  • iPhoneやらiPad

使ったもの

実装したい機能

機能として以下の機能を実装することにした。

  1. 現在地から近くの図書館を検索する。
  2. 図書のタイトル、著者を元に該当図書を検索する。
  3. 対象の図書が図書館にあるのか、あった場合に貸し出し可能か表示する。

実装方法

現在地から近くの図書館を検索する。

FileMakerGoではLocationValuesで現在端末のある緯度経度を取得できるため
LocationValuesでは以下のように値が返ってくるので必要な情報をぬきとる。

// 緯度
37.406489 
// 経度
-121.983428
// 高度
0.000000
// 水平精度
65
// 垂直精度
-1
// 経過分数
0.001236

スクリプトワークスペース__図書検索アプリ1020_.png

取得した座業データを元に、カーリルのAPIに対してリクエストを投げつける。
$RESPONSEにAPIからのレスポンスを格納し、$LIMITには取得件数を設定している。
スクリプトワークスペース__図書検索アプリ1020_ 2.png

データが取得できたことを確認する条件式は
JSONListKeys ( $RESPONSE ; "" ) ≠ ""を使用した。
データをパースしていくループに関しては
ValueCount(JSONListKeys ( $RESPONSE ; "" ))を使用している。
スクリプトワークスペース__図書検索アプリ1020_ 3.png

今回の実装ではJSONのプロパティ名を取得する際にハードコーディングしているが
フィールド名とJSONのプロパティ名を揃えて
フィールドを名前で指定とJSONListKeysの組み合わせの方が良さげ。

まとめ

実装したい機能2と3についても同様にAPI叩いてJSONをパースするだけなので割愛。
今回JSONListKeysやJSONGetElementを使用してみた感じだと
他言語でのJSONの扱いに比べるとまだちょっと不便。

FileMaker Data APIのライセンスをよく知らないんですけど
WebDirectの速度感とかFileMakerGoのデータ同期とかあとちょっとな感じが多いので
JSONでデータぶつけ合うのがもっと便利になってほしい。

あと初めて書いてみて記事を書くのは大変だと思った。

5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?