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未満のすべてのレコードをフィルターします。