JSON リスト プロセッサの一般的な使用例は、動的なアイテム数を持つリストを含む API リクエストを処理することです。例えば、次のようなリクエストを送信したとします。
{
"request": {
"items": [
{ "id": 1, "name": "William" },
{ "id": 2, "name": "Beverly" },
{ "id": 3, "name": "Richard" }
]
}
} |
以下のようなレスポンスを期待するとします。
{
"response" : {
"itemResponses" : [
{ "id": 1, "name": "William", "balance" : 72500.13 },
{ "id": 2, "name": "Beverly", "balance" : 33000.99 },
{ "id": 3, "name": "Richard", "balance" : 42010.75 }
]
}
} |
これを実現するには、JSON リスト プロセッサを使用します。以下のワークフローがその方法を示しています。
新しい .pva を作成し、スイートに JSON レスポンダーを追加します。

{
"response" : {
"itemResponses" : [
${Outgoing List}
]
}
} |
${Outgoing List} 変数は、JSON リスト プロセッサーによって処理された各アイテムの集約されたレスポンスを使用して、実行時に解決されます。


import com.parasoft.api.Application
def showMessage(input, context) {
Application.showMessage("Extension Tool Output - Incoming Item:\n" + input + "\n") |
| id | name | balance |
|---|---|---|
| 1 | William | 72500.13 |
| 2 | Beverly | 33000.99 |
| 3 | Richard | 42010.75 |

{
"id": 1,
"name": "William"
} |

id を使用します。
{
"id" : ${id},
"name" : "${name}",
"balance" : ${balance}
} |

.pva でエラーを処理する方法はいくつかあります。上記で作成したレスポンダー スイートに、次のいずれか (または両方) を追加します。
オプション 1: 無効なアイテムに対してカスタム エラー メッセージを返す
アイテムの ID がデータソースに存在しない場合、そのアイテムに対してカスタム エラー メッセージを返すことができます。
{
"id" : “${{=/root/id/text()}}”,
"error" : {
"code" : "NOT_FOUND",
"message" : "No active account found for id '${{=/root/id/text()}}'."
}
} |
このペイロードは、インライン式を使用して、受信した JSON から直接値を抽出します。あるいは、JSON データバンクを使用して値を抽出することもできます。
{
"request": {
"items": [
{ "id": 1, "name": "William" },
{ "id": 13, "name": "George" },
{ "id": 2, "name": "Beverly" },
{ "id": 3, "name": "Richard" }
]
} |
オプション 2: 無効な項目を無視して集計しない
送信リストから無効な項目を除外したい場合は、エラー レスポンダーに空のレスポンスを設定します。これにより、JSON リスト プロセッサはそれらの項目を集計から除外します。