「辞書」アクションはシンプルなデータを扱うのにとても便利です.
しかしショートカットならではの問題あり、例えば
- 一つの辞書アクションが肥大化すると動作が重くなることがある
- バグにより一部の仕様が効かなくなる
といったことがあります.
とくに前者は機種が古いほど苦しめられます.
そのため本来ひとつにまとめるところを敢えて複数に分ける選択肢があります.
分け方次第では適当な変数を付けることで適切に使い分けることができるでしょうが一つのアクションとして扱いたい時があります.
※価格は記事執筆時のものです. 現在の価格はApp Storeから確認ください.
レビュー時のiOSバージョン : iOS16.6
スポンサーリンク
複数の辞書を繋げる
例えば適当に作ったこの二つの「辞書」をひとつにしてみます.
直感的には、例えば「テキスト」アクションに各々の辞書を並べたものを改めて辞書とすればいいはずです.
問題なければ「入力から辞書を取得」の結果が空でないはずです.
念のため「入力から辞書を取得」の結果(=辞書)のキーも確認しておきます.
結果は画像の通りで辞書にする段階で出力がおかしいです.
結合だけした結果を見て分かる通り、辞書(=json)の区切り文字に問題があります.
jsonは括弧{}でひとかたまりですが、ショートカットでは複数のjsonのかたまりをそのままでは辞書として認識してません.
そのためこのままでは構文エラー扱いとなります.
それを解決するために不要な括弧{}を取り除く必要があります.
具体的には各々の末尾である"}"とそれに続いた"{"を、データの区切り文字であるカンマ","に置き換えます.
これでふたつの辞書がひとつの辞書として取得できました.
辞書が3つになっても4つになってもやることは同じです.
改行で区切られている場合
前者では各々の辞書(json)を隣同士に並べていましたが、場合によっては各々が改行されている場合もあります.
この場合}と{の間に改行が存在するため、例えば正規表現を用いて
\}\n\{
をカンマ","に置き換えます.
{や}は特殊文字なので半角バックスラッシュでエスケープする必要があります.
これで改行して配列された場合でもひとつの辞書として扱えます.