第一回ではまずJSONとはそもそも何モノなのか、どんな書式なのかを紹介しました。
JSON も データを表す書式の一つなので、誰が見ても理解できるように、一定のルールがあります。
- キーまたは識別子 と 値 の組み合わせで構成される
- キー/識別子 は ダブルクォーテーションで囲む
- 最初と最後は中カッコ {...} でくくる
- キー/識別子と値の間は コロン : で分ける
- 複数のキー/識別子&値のペアがあるときはカンマで区切る
上記5つのルールはもちろんJSONを一から書く/構成する場合には必須の理解ですが、読み取る/理解するときも大事な指針です。
このルールに加えて、JSONで扱うデータ型も大事なポイントです。 特にJSONでは、データが1件の配列 と オブジェクトが明確に区別されます。
- 文字列
- 数値
- ブール値
- オブジェクト
- 配列
- null
また、Power Automate の各種関数・アクションでもデータ型を指定されている場合が多いので、取り扱うデータがどんな型なのかを理解しておくことは重要だと思います。
基本のルールとデータ型が理解できてくると、与えられたJSON (たとえばPower Automateのアクションの結果) がどのような構造なのか、よりフローをシンプルにするにはどうしたらいいのか を考えられるようになってきます。
構造を読み取るためにも、適切にインデントしてくれたり、色を付けてくれるととても見やすいです。 (残念ながら素のままだとはてなブログではシンタックスハイライトが効かないシンタックスハイライト効くけどデータ型による色分けはない)
自分が複雑そうなJSONを取り扱うときには必ず、VSCodeにJSONを貼り付けて、フォーマットするようにしています。
VSCodeでJSONを開くと、キー/識別子 は青文字に、値も型によって文字色を変えてくれます。インデントもしっかりそろえてくれるので、読み解くときの助けになります。
JSON に限らずですが、自分の知っているものに置き換えて考えられると、理解が早くなります。第三回ではJSONのサンプルをExcel表に例えてその構造を紐解いていきました。読み解くときもある程度ルール、筋道を自分なりに作っていると早いんじゃないかと思います。
最後に第四回では、特定の値にどうやってアクセス/取得するかを説明しました。
変数としてオブジェクト/配列を定義するか、「作成」アクションで定義するかでJSON全体を表すときの記法が変わりますが、それ以外は共通して、以下の通りでした。
- 特定の識別子の値を取得したいなら ?['識別子']
- 配列の特定の行の値を取得したいなら ?[順番] ※ただし0から数える
- 配列の中にオブジェクトがある場合には、まず配列の順番を指定してから、中の識別子を指定 ?[順番] ?['識別子']
※変数の場合には最初に variables('変数名')
となり、「作成」の場合にはoutputs('作成')
となります。その後ろに ?['識別子'] や ?[順番] をつなげてください。
JSON がそもそもどういう構造なのか、データ型が何か、それを踏まえてどうやって特定の値を抽出するか という一連の流れをフォローしたつもりですので、少しでもJSONへの抵抗感が和らいでくれたらと思います。
ここまで読んでもらえて、少しJSONと仲良くなれたなら、ここら辺の投稿もより理解しやすくなるかな~と思います。
最後に、ローコードの分野でも「これを知っているとより便利」なJSONです。 ぜひこの機会に少し距離を縮めてみてください。