JSONPathを使用して応答データを抽出する
応答本文のコンテンツがJSONの場合、JSONPathを使用してJSONの特定の要素を出力パラメーターに抽出できます。出力パラメーターには指定されたBlue Prismデータ型があり、JSONPathを使用して見つかったオブジェクトはそのデータ型に変換されます。この例では、JSON HTTP応答からデータを抽出し、それをプロセスのステージに格納する方法を示します。
API定義応答を構成する
API定義は次のJSON応答を返します。
このデータを抽出するには、API定義内の必要なアクションに対する応答を選択します。適切なデータ型とメソッドを選択し、各データアイテムにパラメーターを追加します。
プロセススタジオで応答を表示する
プロセススタジオで、応答が構成されたWeb APIアクションを使用するプロセスの[出力]を選択します。応答に追加されたパラメーター名に対応する出力が追加され、各パラメーターを格納するプロセスで関連データアイテムが作成されました。
プロセスが実行されると、応答からのデータは適切なステージに格納され、プロセス内の他の場所で簡単に使用できるようになります。
出力パラメーターに定義されたJSONPathがHTTP応答でマッチを見つけることができない場合、出力パラメーターは空のデータアイテム/コレクションを返します。
出力パラメーターに定義されたJSONPathがHTTP応答で可能性のあるマッチを複数見つけると、プロセスで例外がスローされます。
JSONPathの構文
Blue Prismでは、JSONPath式に対して次の構文をサポートします。
JSONPath |
説明 |
---|---|
$ |
ルートオブジェクトまたは要素。 |
@ |
現在のオブジェクトまたは要素。 |
.または[] |
子オペレーター。 |
.. |
再帰的な子。 |
* |
ワイルドカード。 |
[] |
ネイティブ配列演算子。 |
[開始:終了:ステップ] |
配列スライス演算子。 |
?() |
フィルター(スクリプト)式を適用します。 |
() |
基礎となるスクリプトエンジンを使用したスクリプト式。 |
例
スタッフデータベースには、組織の従業員に関するデータを含む多数のレコードが含まれています。
{
"スタッフデータベース":{
"従業員":[
{
"id":1245,
"名前":"ジェフ・ブライアント",
"給料":45000,
"年齢":46
},
{
"id":1365,
"名前":"トム・ロバーツ",
"給料":38000,
"役職名":"デベロッパー"
"年齢":34
},
{
"id":1287,
"名前":"ハーマン・ブラント",
"給料":27000,
"役職名":"テスター"
"年齢":26
},
]
}
}
次はJSONPathの使用方法の例です
JSONPath |
結果 |
---|---|
$.staff-database..salary | すべての従業員レコードの給与を返します。 |
$.staff-database['employee'] | すべての従業員レコードを返します。 |
$..employee[?(@.job-title)] | 役職を持つすべてのレコードをフィルターします。 |
$..employee[?(@.salary<40000)] | 給与が40000未満のすべてのレコードをフィルターします。 |