PA45 第14回 スライド

2026-06-11(木)20:15〜 / JSONの読み方|実行履歴のあの "謎の文字列" が見えるようになる
1 / 20
PA45 — Power Automate 45第14回 / Vol.14
まもなく開始します
20:15 START
第14回|JSONの読み方
実行履歴のあの "謎の文字列" が見えるようになる45分
2 / 20
PA45|第14回

事前準備 (今回はほぼ不要です)

今日は簡単なフローをその場で一緒に作り、実行履歴に出てくる JSON を一緒に読みます。事前準備は STEP1 のサインインだけでOKです。

STEP 1

Power Automate にサインインできる

make.powerautomate.com を開いて、サインインできる状態に。

STEP 2

あとは当日いっしょに作るだけ

簡単なフローをその場で一緒に作って実行し、出てくる JSON(実行履歴)をみんなで読みます。用意するものはありません。

💡 見るだけ参加もOK 今日は画面を一緒に眺めるだけでも十分つかめます。録画も後日YouTubeで公開します。
当日いっしょにフローを作る
🔤 今日のテーマは「JSON」── 覚える記号は [ ]{ } の2つだけ
3 / 20
INTRODUCTION

PA45とは?

Concept
忙しい人のための
45分ハンズオン
⏱️

45分完結

長時間の研修は不要。要点だけを凝縮して最短でスキル習得。

💻

実践型ハンズオン

座学だけではありません。その場で実際に手を動かし「使える」技術を学びます。

👥

一緒に作る

ゼロから一緒に作ることで仕組みを理解します。

✓ Power Automate 未経験・知識ゼロでも大丈夫!
4 / 20
SPEAKER

Power Automate 45 (PA45)

今日も一緒に "1粒だけ" 深掘りします!
Haru
Haru
💻 Power Platform / DX 推進
⭐ 主な活動・実績
🏢 社内講座の実施
PA/Copilot ハンズオン講座などを開催し、社内のDXを推進
🎤 外部コミュニティ登壇
広島コミュニティ「PLUG」運営。外部コミュニティ登壇
📱 X (Twitter) での情報発信
初心者向けPAチップスを2日に1回継続発信中!
🕐 Power Automate 45 (PA45)
45分の "1粒ハンズオン" を毎週開催・運営
今日は「できた!」を一緒に作っていきましょう 😊
5 / 20
PA45 Online Course

ご参加にあたってのお願い (ルール)

Guidelines
🤝

みんなで気持ちよく
学ぶために

  • 誹謗中傷・不適切な発言は禁止
  • お互いを尊重し合いましょう
🎥

講座の録画について

  • 後日YouTube公開予定
  • 表示名が映る場合があります
  • 匿名参加で非表示にできます
💬

チャットは気軽に
どうぞ

  • 「できました!」の声など大歓迎
  • 小さな質問でも OK です
  • 反応があると講師も嬉しいです
🖌️

アウトプットで学びが定着

  • # #PA45 をつけて投稿しよう!
  • 「気づき」「ここに値があった!」など何でもOK
  • 投稿は運営の励みになります!
🎓

初心者大歓迎の講座です

  • 🚫 難しい専門用語は使いません
  • 🚶 置いてけぼりにならないようゆっくり進行
  • 😊 安心してご参加ください
6 / 20
Power Automate 入門講座 Vol.14
PA45 【JSON | [ ] と { } | 実行履歴の読み方】

第14回:JSONの読み方
実行履歴のあの "謎の文字列" が
見えるようになる

Theme
JSON入門|[ ](配列)と { }(オブジェクト)・ネストの読み方
Target
実行履歴の英語の羅列が苦手な方/動的コンテンツに出ない値を取り出したい方
Time
解説中心+実行履歴を一緒に読む 約25分
Haru
Haru
7 / 20
PA45|第14回

今日やること (3つだけ)

Agenda
1
📝

JSONって何?

お弁当箱に おかず
(項目名:値)を並べたメモ。
怖くないと知る。

2
🔣

[ ] と { } の違い

角括弧=同じ仲間の並び。
中括弧=1セット。
2記号を見分ける。

3
🔍

実行履歴で実物を読む

ほしい値が
どこにあるかを
たどれるようになる。

🎯 ゴール: 実行履歴の "謎の文字列" を見て、「あ、ここに申請者の名前がある!」と指させるようになればOK。Parse JSON などの難しいアクションは使いません。
8 / 20
PA45|第14回 / はじめに

そもそもJSONって? ── どこで出てくる・なぜ読むの

Intro
JSONは Power Automate を使うと必ずどこかで出会うもの。まずは「どこで出てくる?」「なぜ読むの?」から、やさしく。

どこで出てくる?

フローを実行すると 「実行履歴」に記録が残ります。各ステップの 「出力」を開くと…英語と記号だらけの文字列が。それがJSONです。

よくある困りごと

使いたい値が 「動的コンテンツ」の一覧に出てこないことがあります。「あれ、選べない…」で手が止まる。

だから読めると強い

JSONが読めれば、その文字列から ほしい値を自分で取り出して、メールや通知に使えます。

🎯 今日のゴール: 実行履歴に出てくる "謎の文字列(JSON)" を読んで、ほしい値を取り出せるようになること。難しい知識はいりません。
9 / 20
PA45|第14回 / はじめに

今日のストーリー ── 山田さんの注文を Teams で確認する

Story
今日作るのは「お弁当の注文を受けて、確認の連絡を自動で送る」フロー。登場するのは3つの役割です。
山田さん
① 山田さん(注文者)
「からあげ弁当 ください!」
からあげ弁当 からあげ弁当 × 2個
→ 注文データ(JSON)が生まれる
今日学ぶ
フロー
② フロー(自動処理)
注文JSONを読んで、弁当名と個数を取り出し → お礼文を組み立てる
担当者
③ 担当者(自分)
Teams に「からあげ弁当 を 2個 承りました」と確認連絡が届く
🎯 今日の主役は②: 「フローが注文JSONを読んで、ほしい値を取り出す」ところ。だから、その "謎の文字列" を読めるようになりましょう。
10 / 20
PA45|第14回

[ ] と { } の違い ── 覚える記号はこの2つだけ

Concept
[ ]
角括弧(かくかっこ)
bracket

配列(リスト)

= お弁当が並ぶ「棚」

同じ仲間が順番に並ぶ。番号(0,1,2…)で取り出す

[ "からあげ弁当", "鮭弁当", "幕の内" ]
{ }
波括弧(なみかっこ)
brace / 中括弧

オブジェクト

= 1つの「お弁当箱」

おかず(項目名:値)が入る。名前で取り出す

{ "からあげ":3, "ごはん":"大盛り" }
番号で取り出す → お弁当 [0] = からあげ弁当
名前で取り出す → お弁当 / からあげ
棚=配列
お弁当箱=オブジェクト
🔑 見分け方: [ が見えたら「番号で取り出す」(何番目のお弁当)、{ が見えたら「名前で取り出す」(おかずの名前)。この2つだけ意識すれば JSON はほぼ読めます。
11 / 20
PA45|第14回 / 基本

JSONって何? ── お弁当箱に「おかず」が並ぶ

Basics
JSONは 「項目名(key)」と「値(value)」をセットで並べただけ。= お弁当箱に「おかず(項目名:値)」が並んでいるとイメージすると一気にやさしくなります。
{ "からあげ": 3, "ごはん": "大盛り", "デザート": "プリン" }
読み方=おかずを表にするだけ
からあげ3個
ごはん大盛り
デザートプリン
JSON=お弁当箱におかずが並ぶ
💡 ポイント: "おかずの名前" の右に :(コロン)、その右に中身(値)。おかずが ,(カンマ)で何品も並んでいるだけ。
※ 項目名(キー)は日本語でもOK(正しいJSON)。ただし実務の実行履歴は body など英語が大半です。
12 / 20
PA45|第14回 / たとえ話

★ 配列を身近なモノで ── 棚・引き出し・お弁当箱

Image
[ ](配列)は「棚(タンス)」。番号のついた「引き出し」が並び、その中に { }(オブジェクト)=「お弁当箱」が入っている──とイメージすると一気にやさしくなります。
棚
棚 = 配列 [ ]
同じ形の入れ物が並ぶ「全体」
引き出し
引き出し = 各要素
番号で開ける [0][1][2]…
お弁当箱
中身 = お弁当箱 { }
おかず1品=「項目名:値」。何品も並ぶ
[ ← 棚 { "からあげ":3, "ごはん":"大盛り" }, ← [0] のお弁当箱 { "からあげ":5, "ごはん":"並盛り" } ← [1] のお弁当箱 ]
配列は番号で取り出す
「上から2番目の引き出し」= お弁当[1]
オブジェクトは名前で取り出す
「からあげ取って」= からあげ
💡 引き出しの中身は { } のことも、りんご1個(ただの値)のことも。組合せ → お弁当[0] / からあげ
13 / 20
PA45|第14回 / Main

★ ネストの読み方 ── お弁当箱の入れ子でたとえる

Core
JSONは { } の中にさらに { } が入る「入れ子(ネスト)」になります。= お弁当箱の中に、さらに小さなお弁当箱が入っているイメージ。外側から順に開けるだけです。
{ "body": { ← 一番外のお弁当箱 "responder": "yamada@…", "answers": { ← 中の小箱 "name": "からあげ弁当", ← おかず(注文した弁当) "amount": 2 } } }
大箱(お弁当箱) body … 全体の入れ物
中の小箱 answers … おかずのかたまり
その中のおかず nameからあげ弁当
上から順にたどると…
body / answers / name
🎉 今日の山場: 「あ、ここに注文した弁当(name)がある!」と指させたら勝ち。外側のお弁当箱(body)から順に開けるだけです。次ページで実際の実行履歴を読みます。
14 / 20
PA45|第14回

実行履歴で実物を読む ── 一緒にやってみよう

Hands-on
📝 ステップ
  1. 過去に動かしたフローの 実行履歴を開く
  2. トリガーやアクションの 「出力」を押す
    → 例の "謎の文字列"(JSON)が出てくる
  3. { }[ ] を頼りに、ほしい値の場所をたどる
  4. 動的コンテンツに出てこない値は、式でピンポイントに取り出す
  5. 「ここに名前がある!」を指さして確認 🎉
式の形(イメージ):
triggerOutputs()?['body']?['answers']?['name']
?['…'] をつなげて、深い階層の値へ
JSONからほしい値を探す
🔍 実行履歴の「出力」の例
{ "body": { "responder": "yamada@…", "submitDate": "2026-06-11", "answers": { "name": "からあげ弁当", ← これがほしい "amount": 2 } } }
🍱 お弁当箱と同じ:body=大箱 / answers=小箱 / name=おかず。承認結果や SharePoint の列も同じ要領で読めます。
15 / 20
PA45|第14回 / Hands-on

ハンズオン① ── この簡単なフローを一緒に作る

Build
🎯
ゴール(完成したらこれを送る)
Teams に 「からあげ弁当 を 2個 承りました」 を自動で投稿!
使うのは 手動トリガー+作成(Compose)3つ+Teams送信。注文JSONから値を取り出し → 文章にして → Teamsへ。
① フローを手動でトリガーします
② 作成(注文データ JSON) / 右のJSONを貼る
③ 作成 1(弁当名を取り出す) / 式で取得
④ 作成 2(お礼文を組み立てる) / concat
⑤ チャットまたはチャネルにメッセージを投稿 / フローボットで自分(ixa)宛に送信
②「作成(注文データ JSON)」に貼る(コピペOK)
{ "responder": "yamada@example.com", "answers": { "name": "からあげ弁当", "amount": 2 } }
お弁当の注文フォームのイメージ。③④⑤は次のページで作ります。最後にTeamsへ届けばゴール!
16 / 20
PA45|第14回 / Hands-on

ハンズオン② ── 出てきたJSONを読む

Read
📝 手順
  1. 実行履歴を開き、「作成(注文データ JSON)」をクリック
  2. 「出力」に さっきのJSON が出る
  3. { } をたどって answersname
  4. からあげ弁当」を指さして確認 🎉
動的コンテンツに無ければ、式で:
outputs('作成(注文データ_JSON)')?['answers']?['name']
🔍 実行履歴の画面(イメージ)
{} 作成(注文データ JSON)✓ 0秒
出力
{ "responder": "yamada@…", "answers": { "name": "からあげ弁当", ← これ! "amount": 2 } }
🍱 answers=中の小箱、name=おかず(注文した弁当)。
✅ これができれば卒業! 実務でも「実行履歴 → 出力 → { }/[ ] をたどる」の手順はまったく同じです。
17 / 20
PA45|第14回 / Why

で、読めると何が嬉しい? ── これが本当のゴール

Payoff
いちばんのメリットは
動的コンテンツに出てこない値も、自分で取り出して使える」こと

❌ 読めないと…

  • ほしい値が動的コンテンツの一覧に出ない
  • 「あれ、取れない…」でフローが止まる

✅ 読めると…

  • JSONをたどって式でピンポイントに取り出せる
  • その値を次のアクションに差し込める
📧

メール・通知に差し込む

からあげ弁当を承りました」を自動返信

🔀

値で条件分岐

注文内容でルートを振り分け

📝

他サービスへ転記

SharePoint・Teams・API へ

💡 つまり: JSONが読める=「動的コンテンツに頼らず、ほしい値を自由に使える」。さっき取り出した「からあげ弁当」も、こうして"使える値"になります。
18 / 20
PA45|第14回

「動的コンテンツ」って? ── 便利。でも"奥の値"は出てこない

Key
動的コンテンツ=前のステップの結果を、クリックで選んで差し込める候補リスト。便利ですが、出てくるのは 出力 など「ひとかたまり」まで。その中の奥の値nameamount)は一覧に出ません。
📋 動的コンテンツの一覧(実際の画面イメージ)
動的なコンテンツ
🔍 検索
作成(注文データ JSON)
{} 出力
✕ 「name」「amount」はこの一覧に出てこない
🟢 出てくる出力 という「ひとかたまり」
🔴 出てこない:その中の answersname / amount といった奥の値
🎯 だから JSONを読んで、式で住所を書いて取り出す(次のページで実演!)
ひとことで: 動的コンテンツは「よく使う値の"ショートカット集"」。載っていない奥の値は、自分で住所(パス)を書けば取り出せます。
19 / 20
PA45|第14回 / Hands-on

ハンズオン③ ── 動的コンテンツに無い値を、式で取り出す

Extract
動的コンテンツに出ない値は、式で「住所(パス)」を書いて取り出す最後のキーを変えるだけで、別の値も同じ要領で取れます。
① 弁当名
キー:name
outputs('作成(注文データ_JSON)')?['answers']?['name']
→ からあげ弁当
② 個数
キー:amount
outputs('作成(注文データ_JSON)')?['answers']?['amount']
→ 2
💡 ここがコツ: 住所は同じまま、最後の ['name']['amount']変えるだけで「2」が取れます。数値はクォート(" ")不要です。
③ 作成 2:concat で①と②を1つの文章に組み立てる
concat( ①弁当名の式, ' を ', ②個数の式, '個 承りました' )
✅ ⑤Teams に「からあげ弁当 を 2個 承りました」を投稿 (実機テスト済み)
20 / 20
Closing

活用事例とよくあるつまづき

💼 こんな場面で使えます

  • 動的コンテンツに出てこない値を式でピンポイントに取り出す
  • 承認結果から承認者コメントだけ抜き出す
  • SharePoint 取得アイテムの特定の列だけ使う
  • 外部 API の応答(JSON)から必要な値を拾う

⚠️ うまくいかない時のチェック

  • 値が取れない → 階層とつづり(大文字小文字)を確認。body/answers/name
  • 配列なのに番号がない[ ][0] のように番号で指定
  • null エラーが出る? を付けて ?['body'] と安全にたどる
  • 動的コンテンツに出ない → 式(outputs('アクション名')?['…'] など)で取り出す
Haru
🎁 ご参加ありがとうございました!
アンケートに答えてくださった方にバッジをお送りしています。次回もぜひ。
📝 アンケートはこちら →
📄 復習用スライド:haru-powerplatform.github.io/pa45/slides/vol-14/
第14回|JSON | [ ] と { }|実行履歴の読み方