2
2

More than 1 year has passed since last update.

【FileMaker】JSONの配列を書く

Last updated at Posted at 2022-08-03

何度もサンプル書くのも面倒になってきたので、一度アウトプットしておきます。

配列書くのがめんどくさい

FileMakerのバージョンが16以降からJSON扱えるのはとても便利になって幸せだな〜って思うのですが、配列を描くのがめんどくさくてですね。

JSONArrayとは何だ?必ず使わないといけないのか?

めんどくさいというか、JSONArrayを使えばいいのか、単に配列の「[0]」とか「[1]」でセットすればいいのかがいまいちわかってなかったというのが本当のところです。

結論

JSONArrayで書く配列と単に配列の「[0]」とか「[1]」でセットするやり方は同じ結果。
です。
ただ、どういうふうに書けばいいのか、JSONArrayに関してはヘルプなどであまりサンプルが出ていなくて、「どう書くんじゃ!?」と思ったので、こちらでまとめようと思ったのです。

配列の書き方

JSONArrayを使った書き方

まずは、先にJSONArrayを使って書いた変数の内容をカスタムダイアログで表示してみます。
スクリーンショット 2022-08-03 17.43.11.png
今回配列で取り扱うのは、"query"部分と"sort"部分です。

これを、JSONArrayを使って書くと、以下のようになります。
スクリーンショット 2022-08-03 17.41.53.png
配列を示す"["と"]"の中で、バックスラッシュでダブルクォーテーションを指定して、配列の中のデータ構造を作成している感じです。
バックスラッシュを使っていることで、ちょっと可読性が落ちているように感じます。(当社比)

JSONArrayを使わない書き方

JSONArrayを使わずに書いた変数の内容をカスタムダイアログでこちらも表示してみます。
スクリーンショット 2022-08-03 17.43.22.png
先ほどと同じ表示内容になります。

では、これはどのように書いているかというと、
スクリーンショット 2022-08-03 17.42.39.png
それぞれの配列にセットする配列データを組み立て、JSONObjectで設定しています。
こちらの方が可読性が高いと思うのですが、皆さんはどちらで配列データを実装していましたか?

もう一つのJSON配列の書き方

こちらは、おまけになります。
単なる配列データのJSONを作りたいんです、という時です。
どういうことかというと、こういう配列です。
スクリーンショット 2022-08-03 17.57.34.png
keyがなく、valueのみの配列JSONです。

JSONを組み立てるときは、keyにあたる部分に配列を直接指定します。
スクリーンショット 2022-08-03 17.59.33.png
ただ、ちょっと面倒だなと思うところは、配列の"["と"]"をダブルクォーテーションで囲むところです。
そこをクリアしてしまえば、あとは単純にvalueを指定するだけなので、JSONArrayのバックスラッシュよりはめんどくささが一段低くなるような気がします。(当社比)

実際に構築したJSONデータから、最初のデータを取り出してみましょう。
JSONGetElement関数で、キーに当たる部分にこちらも配列を直接指定します。
スクリーンショット 2022-08-03 18.04.25.png

取得できましたね。
スクリーンショット 2022-08-03 17.57.41.png

では、次は、この配列が何個あるかを確認してみます。
この場合は、2つの関数で構成しています。
JSONListKeys関数でキーを抽出し、その個数をValueCount関数でカウントします。
ValueCountは改行区切りの値一覧のようなデータ構造でよく利用する関数ですが、JSON配列の個数を確認するときも利用できます。
スクリーンショット 2022-08-03 18.04.32.png

表示して確認してみましょう。
スクリーンショット 2022-08-03 17.57.48.png
確かに配列3個が確認できましたね。

JSONで取り扱う配列構造について、モヤッとしていたので、まとめてみました。

2
2
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
2
2