我使用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断言完成此操作,但是,我无法看到正确格式化。
任何帮助将不胜感激!
答案 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"