ショートカット

【iPhone/iPad】ショートカットの辞書(JSON)関係の使い方まとめ

辞書(JSON)アクションの使い方ショートカット
この記事は約6分で読めます。
書いた人
あいりゅー(irilyuu)

メインはApple製品(mac/iOS/iPad)です。
プログラミング専門ブログ立ち上げました。

あいりゅー(irilyuu)をフォローする
スポンサーリンク

こんな方にオススメ

ショートカットでJSONを扱いたい
そもそもJSONって何
辞書って何

2021/10月~2022/1月 iPadOS15にて確認した内容に更新

スポンサーリンク

辞書について

そもそもですが、まずは辞書ってワードについて解説しなければなりません。ショートカットのスクリプティング内にいくつかある辞書というものは全てJSONというものの事を指しています。そしてJSONって何って話ですが、これはキー+値で構成されるデータ値です

JSONはJavaScriptのオブジェクトに似た文字列です。文字列ということで、ネットワークで転送したりすることも出来ますし、様々なアプリとかでも使われているようです。中の人はJSONやJavaScriptについてあまり詳しくないので詳しいことは割愛しますが、超簡単に言えば「文字列」です。

Jsonの基本的なルールとして、「キー:値の形式で書く」とか、「文字列は”で前後を囲む必要があるが、数字は囲む必要がない」みたいなことは知っています。後は順番が1から始まるわけではなく、0から始まるってのもどっかで見た気がします。一応このページでは調べながら、実際にショートカットで触りながら書いているのである程度は正確です。

スポンサーリンク

辞書

【辞書:mac版】はこちら。

まずはこのアクションで辞書を定義する必要があります。操作は簡単で、まず緑のプラスマークをタップして追加する種類を選びます。

テキストテキストを追加します
数字数字を追加します
配列1つのキーに対して、複数の値を追加します
辞書1つのキーに対して、新たにキー:値の組み合わせを追加します
ブール値真偽値を設定します 真偽値についてはif文を参照

上記5種類から選んで追加します。最も基本的なのはテキストと数字ですね。テキストを追加するとキーとテキストという入力エリアが出てくると思います。キーというのが目印で、テキストがその中に入れるデータになります。

キー・値のどちらにも変数を利用して、他の物を入れることが出来ます。ただしテキストには文字を、数字には数字を入れないと正しく出力されないので注意。

麻雀の記事も掲載しているので、麻雀の役を例にして紹介します。テキストを追加して、キーの部分を役、テキストの部分に適当に平和とか国士無双とか入力します。こうすると、「他のアクションで役のキーを取得するとテキストに入れた役名を取得できる」状態になります。つまり「キーは呼び出すための鍵であり、実際に呼び出されるのはテキストの方」というわけですね。

これは数字も同じです。細かいことを書くと、テキストは{“キー”:”テキスト”}で書く必要がありますが、数字は{“キー”:1234}と書きます。後半のものを”で囲っているかどうかの違いですが、テキストは”で囲む必要があります。辞書にテキストと数字をそれぞれ入れて、結果を見てみると分かると思います。以下の画像では赤色はテキストで、黄色は数字で追加したものになります。

jsonの文字列と数字の書き方の違い

配列は「1つのキーに対して、複数の値を設定する」ものです。これはかなり便利で、例えば麻雀の役には1翻から役満まで様々なものがあります。それを翻数ごとに分類すると以下のようになります。配列は大本のキーを設定出来るんですが、細部の項目1などの部分は変更できません

Jsonの配列

1翻というキーに対して、テキストで立直平和チャンカンとヤクハイを、2翻というキーに対して一気通貫三色同順七対子というテキストを与えました。これで1翻のキーを取得すると、基本的には全ての値を出力します。今回は配列の中身は全てテキストでしたが、「配列の中に数字」なども可能です。参考までに、配列のJson表記は {“キー”:[“データA”,”データB”]}という表記になります。

辞書はかなり難解なものですが、「辞書の中にJsonの組み合わせを作る」というものです。配列は「1つのキーに対して複数の値を与える」でしたが、この辞書を使うと「1つの親キーの中に、更にキー:値の組み合わせを追加することが出来る」ようになります。これのメリットはというと、「1翻役と2翻役でそれぞれ配列を作るとごちゃごちゃするけど、役という大本のキーを作ってその中に辞書・配列として全ての役を入れてしまえば管理が楽」って感じでしょうか。

辞書と配列の組み合わせ

上記画像は「辞書→配列(テキスト)」という順番で作成したものです。大本のキーは役ですが、その中に配列(テキスト)で1と2という子キーを作り、更にその子キーにそれぞれ平和チートイを割り当てました。画像下部の取得については後で解説します。

ブール値は真偽値の事です。真偽値についてはif文の項目で解説してるのでそちらを参照してもらうとして、今回はJsonのブール値について簡単に解説。これは「キーに真偽値を割り当てる」というものです。つまり、最初にAのキーに対して偽の値を割り当てておけばこの後何度Aのキーを呼び出しても、結果は偽ということになります。

スポンサーリンク

辞書の値を取得

【辞書の値を取得:mac版】はこちら。

辞書内のキーを取得」の青文字の部分をそれぞれ変更して使います。辞書は上記の辞書アクションをそのまま使うのが安定です。キーは取得したい値を含むキー(左側)を設定します。値はタップすることで、全てのキー/すべての値を選ぶことが出来ます。

このアクションは通常の使用だと指定したキーの直下の値しか取り出すことが出来ません。しかしJsonは入れ子構造といって、「要素の中に要素を入れる」事が可能となっています。そのため、深い部分まで探せなければ意味がありません。このアクションではそれが可能となっています。

以下の画像では「役というキーの1という第二キーの値を取得」という使い方になっています。

辞書と配列の組み合わせ

赤丸で囲った部分を見ると分かる通り、役.1と書いてあります。コンマで区切ることで、その下の階層へとアクセス出来るようになります。

辞書の値を設定

【辞書の値を設定:mac版】はこちら。

辞書キーに設定」の青文字の部分をそれぞれ変更して使いますこのアクションの辞書もこのページで紹介している辞書アクションを使用します。このアクションはどういう効果を持っているのかというと、「指定したキーの値がなんであれ、このアクションで設定した値として出力する」という機能です。

{“役”:”平和”}という辞書の役キーを取り出すと通常は平和が返ってきます。しかしこのアクションで「辞書ナシに設定」とすると、役キーを取り出すとナシとしか返ってこなくなります。ちなみにこれは元々の辞書に何かしらの変更を加えるわけではなく、一時的なものです。

入力から辞書を取得

【入力から辞書を取得:mac版】はこちら。

入力から辞書を取得」の入力の部分を変更して使います。このアクションは「入力から辞書を作成する」という機能を持っています。

【テキスト】→【入力から辞書を取得】の順に配置し、テキスト内に役=平和と入力して実行すると{“役”:”平和”}と、Jsonのペア表記にしてくれます。

まとめ

このアクションはあらかじめ【辞書】にデータを入れておいて、取得を使うことで真価を発揮します。めちゃくちゃ使うぜって方は多くはないと思いますが、こういう事もできますよっていう簡単な紹介でした。

その他のアクション

ショートカットの他のアクション解説リンク集

Siriショートカットのトップ

サンプルレシピ集

タイトルとURLをコピーしました