もう一人のY君

iPhoneアプリのレビューやアップデートレビューなどを書いています. たまに数学の記事も書きます.

もう一人のY君 MENU

【ショートカット】辞書アクションの基本【iOS13】

f:id:thetheorier:20200131111254p:plain

 辞書アクションの使い方がいまいちわからないという声を聞いたので基本的な使い方を紹介します.

 

ショートカット

ショートカット

  • Apple
  • 仕事効率化
  • 無料

※価格は記事執筆時のものです. 現在の価格はApp Storeから確認ください.

 レビュー時のバージョン : v4.0.1

 

スポンサーリンク

 

 

"辞書"アクション

f:id:thetheorier:20200131111410p:plain

 "辞書"アクションは「キー」と「値」の2つで構成されています.

 説明にある通りJSON(JavaScript Object Notation)と呼ばれるデータフォーマットで, 名前の通りJavaScriptをはじめデータ送受信でも使われます(ここではそういう話はここまで).

 

 辞書を引いたときそのワードと説明があるように, ショートカットの辞書ではそれがそれぞれ「キー」, 「値」に相当します.

 

 ショートカット内では値の属性として

 

  • テキスト
  • 数字
  • 配列
  • 辞書
  • ブール値

 

が与えられています.

 

 

f:id:thetheorier:20200131112055p:plain

 "辞書"アクションを追加すると項目を追加できるようになっているので, 好きなキーと値の組を追加していきます.

 今回はキーに「a」、値に「bcd」と入れました, どんな結果になるのか知りたいので"結果を表示"アクションで辞書そのものを見てみます.

 

 

f:id:thetheorier:20200131112259p:plain

 すると

 

{"a":"bcd"}

 

と返ってきました, これがJSONによるキーと値の組の形であり, ショートカットでもこの形で扱っています.

 

 ではキーに対応する値を取り出すにはどうすれば良いでしょうか.

 

 

辞書の値を取得

f:id:thetheorier:20200131112542p:plain

 辞書にあるデータから対応するキーの値を取り出すには"辞書の値を取得"のアクションを使用します.

 追加すると

 

  • 対応する辞書
  • 対応するキー
  • 取得する対象(デフォルトは値)

 

の指定を求められます.

 今回は例えばキーaの値を取り出すために"キー"の部分にaを入力して結果がどうなるか確認してみます.

 

 

f:id:thetheorier:20200131113000p:plain

 するとキーaに対応する値cbdがちゃんと表示されました.

 

 

辞書に辞書を入れる

f:id:thetheorier:20200131113116p:plain

 先程も見えた通り, 辞書の値に更に辞書を入れることも可能です.

 

 

f:id:thetheorier:20200131113250p:plain

 項目数(画像で0項目とあった部分)をタップすると対象のキーに対して辞書を挿入するタプが開くためここから値を追加していきます.

 

 

f:id:thetheorier:20200131113423p:plain

 こうして追加したものはJSONでも入れ子になった構文となります.

 

 

予め与えた辞書を後で取り出す

f:id:thetheorier:20200131113634p:plain

 ショートカットを作成する上でのルールは通常のプログラミング同様一通りではありません.

 一つの手法としては予め定数などを辞書で定義し, それを必要な変数で置いて必要な場所で使います.

 辞書を用いず"数"アクションと"変数を設定"アクションの組で定義してももちろん良いですが変数が増えるごとにショートカット全体が肥大化してしまいます.

 画像では変数xの定義をコメントの後ろで行っていますが, その手前で行っても(今回は)同じであることは言うまでもありません.

 なお①で辞書自体を変数に置いていますが混乱しないのであれば必要ありません.

 

 

f:id:thetheorier:20200131114641p:plain

 こうして辞書から必要な値を取り出し, 他のアクションへの入力へと渡します.

 

 

入力から辞書を取得

f:id:thetheorier:20200131114800p:plain

 これまでは出力した辞書を扱いましたが"入力から辞書を取得"はその逆になります.

 手前の入力をJSONとして出力してくれます.

 

 

f:id:thetheorier:20200131115038p:plain

 構文の誤った文字列だと空を返します.

 

 

f:id:thetheorier:20200131115131p:plain

 なお本アクションの説明にある通りこのアクションではJSONの構文以外に

 

abc=def

 

とイコールで結んだ場合でも辞書扱いし, JSONで返します.

 

 

 JSONをご存知の形であればここから更に使いこなすことになりますが, そうでない方は「変数定義をまとめて行うのに使える」と思って構いません.