SoapUI:计算JSON数组响应中返回的节点

时间:2015-07-22 17:07:05

标签: arrays json count nodes soapui

我使用SoapUI学到了很多东西,但是,我只是坚持这一点。我有以下有效负载返回:

[
      {
      "@c": ".CreditPaymentInfo",
      "supplementalInfo": null,
      "date": "06/30/2015 17:03:50",
      "posTxCode": "107535",
      "amt": 2.56,
      "transactionId": 235087,
      "id": 232163,
      "cardType": "CREDIT",
      "cardHolderName": "SMITH2/JOE",
      "expMonthYear": "0119",
      "lastFourDigits": "4444",
      "approvalCode": "315PNI",
      "creditTransactionNumber": "A71A7DB6C2F4"
   },
      {
      "@c": ".CreditPaymentInfo",
      "supplementalInfo": null,
      "date": "07/01/2015 15:53:29",
      "posTxCode": "2097158",
      "amt": 58.04,
      "transactionId": 235099,
      "id": 232176,
      "cardType": "CREDIT",
      "cardHolderName": "SMITH2/JOE",
      "expMonthYear": "0119",
      "lastFourDigits": "4444",
      "approvalCode": "",
      "creditTransactionNumber": null
   }
]

我想计算返回多少个节点...所以,在这种情况下,每当我在SoapUI中运行此测试步骤时,我都希望返回2个节点。

我试图使用JsonPath Count断言完成此操作,但是,我无法看到正确格式化。

任何帮助将不胜感激!

4 个答案:

答案 0 :(得分:2)

我没有使用JsonPath,但您可以使用XPath执行此操作...这也适用于所有旧版本。

内部SoapUI将所有内容表示为XML。因此,您可以使用XPath断言来检查:

${#ResponseAsXml#count(//*:id)}

并确保它以

的形式返回
2

答案 1 :(得分:1)

成功计算了JsonPath计数'使用以下之一(假设我的顶级对象是一个数组):

$
$.
$[*]

如果您需要更加具体地计算您正在计算的对象,您可以仅依赖第3种语法,指定其中一个冗余字段。以下其中一项对我有用:

$[*].fieldName
$[*].['fieldName']

在您的情况下,应使用以下其中一项返回2:

$[*].@c
$[*].['@c']
$[*].id
$[*].['id']

等等

答案 2 :(得分:-1)

这是一种JSON格式。只需使用JsonPath Count。在顶部使用$,在底部使用2。

答案 3 :(得分:-1)

$[index].your.path.here

从而

$[0].date would return "06/30/2015 17:03:50"

$[1].date would return "07/01/2015 15:53:29"
相关问题