Power Apps ParseJSON関数がGAになったので使い方を詳しく調べてみた|郵便番号から住所取得サンプルまで

ParseJSON関数がGAになったようなので、使い方を詳しく調べてみた。

スポンサーリンク

ParseJSON関数

ParseJSON関数は、その名前の通りJSON形式のテキストをPower Appsで使用できるデータに変換(解析)する関数

JSONは色々な情報を1つのテキストで表現できるデータの形式で、APIの戻り値とかCosmosDBとか色々なところで使われている。

こちらはうちのねこの情報をJSONで表してみたもの。

{
    "Age": 3,
    "Name": "こつぶ",
    "Species": "スコティッシュフォールド",
    "VaccinationHistory": [
        {
            "date": "2023-06-01",
            "name": "3種混合"
        },
        {
            "date": "2022-06-01",
            "name": "3種混合"
        },
        {
            "date": "2021-06-01",
            "name": "3種混合"
        }
    ]
}

型指定されていないオブジェクト(Untyped object)

ParseJSON関数を使用すると、戻り値として「Untyped object」型のデータが返ってくる

Untyped objectは、Power Apps側がどんなタイプ(文字列?数字?オブジェクト?)の情報なのかわからない、データのこと。

そこでParseJSONで取得した値は、関数を使用してPower Appsのデータ型に変換してあげなきゃ使えない、

はずだったんだけど、どうやら文字列とか数字くらいの単純なデータならある程度推量して使うことができるようになったっぽい。
※プレビューのときには確かできなかったはず。。

こんな感じで数字型のデータとかであれば、特に変換する必要もなく直接使用することができる。

とは言えきちんと変換関数を呼んであげた方がコードを読む側にも親切なので、代表的な変換関数を少しご紹介。

文字列

ParseJSONで取得したデータをテキスト型に変える場合は、Text関数を使用する。

数字

続いて、ParseJSONで取得した値を数字型に変える場合はValue関数を使用。

日付

日付に変換したい場合はDateValue関数を、
日付と時刻に変換したい場合はDateTimeValue関数を使用する。
※文字列はISO8601形式である必要あり
ISO 8601 - Wikipedia

レコード

レコード型(オブジェクト)の場合は、取得したプロパティをドット「.」でつないでいってあげて、変換してあげればOK

配列

配列型の場合は、こんな感じでForAll関数を使用して、Power Appsで扱えるテーブル型のデータに変換してあげる。

HTTPリクエストで返ってくるJSONをPower AppsでParseする

最後に簡単なサンプルとしてこちらのサイトのAPIを使用させていただいて、郵便番号から住所を取得してみる。
郵便番号検索API - zipcloud
日本郵便が公開している郵便番号データを検索する機能をRESTで提供しています。
まずはこんな感じで「HTTPリクエストを送って住所を取得して、その戻り値のJSONを返すだけ」の単純なPower Automateを作成。
そしたらそのPower Automateを呼んであげて戻り値を変数に入れる。
返ってくるJSONはこんな感じ。
このJSONをParseJSONを使用して中身を掘ってあげると、住所が取得できる。

ということでParseJSONは非常に便利なので、今後使用することは増えていきそう。

コメント

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