Power Automateで改行を含むJSONデータを扱う #PowerPlatformリレー

こんにちは、萩原です!
皆さんJSONは触っていますか?
今回はPower Automateで改行を含むJSONデータを扱う際のTipsを紹介します。

Power AutomateでJSONを扱うとき、
通常であればインプットとしてJSONを取り込み解析して次に繋げると思います。
ですが、改行を含む文字列を値として持っている場合有効なJSONとして認識してくれません、困った。
今回はこちらの解決法を書いていきます。

早速やっていきましょう。
まず、今回用意したJSONは以下の通りです。
「チャーシューが」と「鉄のように固い」の間に改行が入っています。

{
        "company_id": "ramen_001",
        "company_name": "株式会社麺一鉄",
        "industory": "ラーメン屋",
        "remarks" : "チャーシューが
鉄のように固い"
}

通常Power AutomateでJSONを扱う場合、 [作成]コネクタや[配列変数]コネクタを使用すると思います。


しかし改行を含むJSONを扱う場合、有効なJSONとしてみなされません。

そのため、[作成]コネクタや[配列変数]コネクタを使用すると下図のようにエラーを吐きます。

当然のように、[JSONの解析]コネクタでもエラーを吐きます。
だからといって改行をあきらめることはできません!

なので改行を含むJSONを扱いたい場合、[変数を初期化する]コネクタを使用して
文字列変数としてJSONを入力します。

今回の要点はこれだけです()

実際に解析してみましょう!
Power Automateではスキーマがしっかりしていれば文字列型のものでもJSONとして扱ってくれます。

[JSONの解析]コネクタを使いコンテンツには先ほどの変数を入れます。

スキーマの設定ですが、先ほどのデータをコピーして設定します。
ただし、改行が入っているとエラーになるので、string型になるように直しておきます。
今回は空文字列にしました。

実行してみると

改行部分が\nに置き換わっていることが分かると思います。
これで、改行を含むJSONを扱うことができました。

ここからは蛇足ですが、実際にこのデータを扱うことを想定して変数に入れてみましょう。
[変数を初期化する]コネクタに、先ほどのJSONのremarksを入れて実行してみます。
このとき文字列型として指定しておけば、\nは勝手に改行に戻ります。


JSONをDBに保存したり、中身をメールに差し込んだり
複数行の文字列を持つJSONを扱う時には参考にしてみてください、ありがとうございました!