Claris FileMaker スキルアップワークショップ(2025/05/18)
「問題解決 Claris ワークショップ in 札幌:とっつきにくさをとっぱらおう! 第一弾「JSON」その2」
ようやく長い冬の季節が終わったと思ったら、あっという間に暑くなりだしている5月も中旬の5月18日。2ケ月に1度の割合で定期開催されている、弊社主催のイベント、 FileMakerスキルアップワークショップが、いつもの開催場所札幌市生涯学習施設「ちえりあ」で開催されました。
今季よりシリーズ化されたワークショップテーマ「とっつきにくさをとっぱらおう!」で取り上げる今回の話題も「JSON」。
前回3月に開催したワークショップでのテーマでもあった「JSON」ではありますが、もう少し掘り下げてみよう、ということで今回も前回の続いてのJSONを扱う第2回となりました。
前回のワークショップ以降、「少し使ってみた」「殆ど障いない」「実際使ってみたら遅かった」といった様々な感想をお持ちの方もいましたし、今回からの参加、ということもいたことで、まずは、前回の内容を振返りながらのJSON知識の基礎の確認から、ワークショップを進行しました。
実際に前回参加していただいていたからの感想の1つに、
「いざJSONをつかって見ようと思い、HELPの内容を見様見まねで試してみたけれど、上手く使えなかった」
という感想があった。
そこでそんなトラブルがどうして起ってしまったのかを事情を確認しつつ、振返りを進めてみた。
実際に事情を確認してみると、HELPの独特に記載に迷いや混乱が生じていることが見えてきた、
さらっと記載されてしまっている記号が意味している内容や、文字列に実は大きな落とし穴があって、読み方次第では混乱しても仕方がない、といった記載も散見された。また、明らかに誤植と思われる記載もあり、こうした内容は改めてリクエストにあげることとした。
進めて行くなかで、究極的にはまずは
jsonSetElements
と
jsonGetElements
この2つをしっかり押さえることで、当面の「とっつきにくさ」は解消できそう、との理解が出てきた。
あと、
jsonLisyKeys
までカバーできたら、まずは、大丈夫では、ということで、特にこの3つの使い方についてFIleMakerのデータビューワ機能を利用しながら検証をすすめた。
この中でも
jsonSetElementsが扱う引数のうちでも最初の引数にあたる記載の
[ json ] << help上は[]のマークはなし
という部分を
{}
()
“”
とした場合に、それは何を意味し、どんな戻り値が期待され、実際にどう動くのか、ということを参加者の皆さんの予想値や結果を検証した。説明できる人の内容の中に「配列」「オブジェクト」という文言が出来た段階でそれは?どういう意味、といった追加説明も加えていった。
こうした、単にHelpの記載だけでは、そのまま読み流してしまうような部分を参加者1人1人の疑問に注目し、それを掘り下げて理解を深めていくことで、それまでの「とっつきにくさ」を少しでも解消させることが、今シーズンのワークショップベーステーマ「とっつきにくさをとっぱらろう」の基本コンセプト。
参加された皆さんの顔が少し明るくなったのは嬉しい反応だった。
さて、こうした基礎知識が少し手に入ると、次は、これらをどう使う、いつ使う、という部分。
参加者の中から出たのは、日ごろ学校で教員職をされている方からの
「成績評価に使えそう」、「スクリプトの分岐に使えそう」という感想。
そこで使い勝手が良さそうなスクリプトの分岐を取り上げてみた。
実際にスクリプト分岐させようとしたら、その分岐条件をどうスクリプトの中で把握するかの設定が必要。
そこで出てきたのが、スクリプトを発効させる時に諸条件を渡すことができるスクリプトの引数。
JSON以前もスクリプトに複数の情報(引数)を渡したい、というニーズはあり、それまでは
改行区切りで渡す
カスタム関数を使って渡す
など先人達の知恵と知識の蓄積はありました。
ただ、特に前者の場合は、改行区切り、ということでその順番を相当注意しないと予想外のデータを取得してしまうことに生りかねない。
そこでJSONを使って引数を設定することでより安全に安定した処理を創ることができます、ということを実例とともに確認しました。
続いて、ネットに公開されている郵便番号と住所のAPI提供サイト[〒番号データ配信サービス]からJSONを使って、効率的にデータ取得を試みてみました。
そこに記載されている内容に寄れば
{
“message”: null,
“results”: [
{
“address1”: “都道府県”,
“address2”: “市”,
“address3”: “地域名”,
“kana1”: “トドウフケンメイショウ”,
“kana2”: “シメイショウ”,
“kana3”: “チイキメイショウ”,
“prefcode”: “都道府県コード”,
“zipcode”: “〒番号
}
],
“status”: 200
}
このように結果は [ result ] の中に格納され、{}で括られたセットが表示される、と記載されています。
配列の所で学んだように
result.[0].address1
で指定すると何が却ってくるかを確認しました。
ここでも参加者の方から、明らかにデータが存在しない番号を入れたらとんな結果になるか、も合わせて検証しました。
データがない場合は、空が帰ってくるのではなく、今回の場合はMessageが異なり、またstatusの返り値が異なります。
そんなこともこの検証の中で確認できましたので、より利用の幅が拡がってきたかと思います。
ワークショップの閉会前に、ご参加いただいた皆様からいただいた感想は前回にも増して、JSONの使い勝手への好的な反応だったように思えます。
加えて、今回のワークショップの中で出てきたJSONの遅さについては、WebViwerを使う、ということも1つの解決策として考えることが出来そうです。
ただ、このWebViewerコーディングは、JS等に馴染がないとなかなか敷居が高いのもまた事実で、そこで出てくるのがchatGPTに代表される生成AIの利用です。
最近、巷間非常に流布されているAIの有効性が発揮される分野が多い、ということで、コーディング支援にこうしたAIの採用は非常に効果的です。
今回はWebViewerコーディングまではカバー範囲では有りませんでしたが、「とっつきにくさをとっぱろう」シリーズに「WebViewerコーディング」が採用される日もそう遠くないかもしれません。
基本的には隔月開催のDBPowers FileMakerスキルアップワークションの次回開催は7/27(日)の午後。
テーマは近々公開できるものとおもいますが、また次回のご参加をお待ちしております。
ありがとうございました。