何度もサンプル書くのも面倒になってきたので、一度アウトプットしておきます。
配列書くのがめんどくさい
FileMakerのバージョンが16以降からJSON扱えるのはとても便利になって幸せだな〜って思うのですが、配列を描くのがめんどくさくてですね。
JSONArrayとは何だ?必ず使わないといけないのか?
めんどくさいというか、JSONArrayを使えばいいのか、単に配列の「[0]」とか「[1]」でセットすればいいのかがいまいちわかってなかったというのが本当のところです。
結論
JSONArrayで書く配列と単に配列の「[0]」とか「[1]」でセットするやり方は同じ結果。
です。
ただ、どういうふうに書けばいいのか、JSONArrayに関してはヘルプなどであまりサンプルが出ていなくて、「どう書くんじゃ!?」と思ったので、こちらでまとめようと思ったのです。
配列の書き方
JSONArrayを使った書き方
まずは、先にJSONArrayを使って書いた変数の内容をカスタムダイアログで表示してみます。
今回配列で取り扱うのは、"query"部分と"sort"部分です。
これを、JSONArrayを使って書くと、以下のようになります。
配列を示す"["と"]"の中で、バックスラッシュでダブルクォーテーションを指定して、配列の中のデータ構造を作成している感じです。
バックスラッシュを使っていることで、ちょっと可読性が落ちているように感じます。(当社比)
JSONArrayを使わない書き方
JSONArrayを使わずに書いた変数の内容をカスタムダイアログでこちらも表示してみます。
先ほどと同じ表示内容になります。
では、これはどのように書いているかというと、
それぞれの配列にセットする配列データを組み立て、JSONObjectで設定しています。
こちらの方が可読性が高いと思うのですが、皆さんはどちらで配列データを実装していましたか?
もう一つのJSON配列の書き方
こちらは、おまけになります。
単なる配列データのJSONを作りたいんです、という時です。
どういうことかというと、こういう配列です。
keyがなく、valueのみの配列JSONです。
JSONを組み立てるときは、keyにあたる部分に配列を直接指定します。
ただ、ちょっと面倒だなと思うところは、配列の"["と"]"をダブルクォーテーションで囲むところです。
そこをクリアしてしまえば、あとは単純にvalueを指定するだけなので、JSONArrayのバックスラッシュよりはめんどくささが一段低くなるような気がします。(当社比)
実際に構築したJSONデータから、最初のデータを取り出してみましょう。
JSONGetElement関数で、キーに当たる部分にこちらも配列を直接指定します。
では、次は、この配列が何個あるかを確認してみます。
この場合は、2つの関数で構成しています。
JSONListKeys関数でキーを抽出し、その個数をValueCount関数でカウントします。
ValueCountは改行区切りの値一覧のようなデータ構造でよく利用する関数ですが、JSON配列の個数を確認するときも利用できます。
表示して確認してみましょう。
確かに配列3個が確認できましたね。
JSONで取り扱う配列構造について、モヤッとしていたので、まとめてみました。