从OData v4 API的响应中使用以下JSON对象:
{
"@odata.context": "https://api.asdfasdf.com/",
"@odata.count": 2,
"value": [
{
"id": 123456789,
"name": "Random name"
},
{
"id": 15345,
"name": "Random name2"
}
]
}
这用于选择数组中的对象:<code>$.value[?(@.id==123456789)]
使用此JSONPath,我可以获得属性“@odata.count”的值:<code>$.“@odataa.count”]
但是如何使用“@odata.count”的表达式编写JSONPath?例如。仅当计数大于 1 时才选择,以下表达式将失败:
$.[('@odata.count' > 1)]
$.[?('@odata.count' > 1)]
$.[(@.['@odata.count'] > 1)]
... and a lot of other expressions
我坚信我正在研究的json深度与我想象的不同,属性的命名约定(以及选择它的方式)让我发疯。
最终目标是在SoapUI Testsuite断言中使用表达式。
将响应中的“@odata.count”属性与我们的测试数据进行比较。
编辑:通过删除数字后的引号修复了json,感谢评论者。
以及帮助我找到解决方案的其他表达式发现:
这些表达式导致“2”:
$['@odata.count']
$..[0]['@odata.count']
此表达式导致空数组:
$..[?(@['@odata.count'] > 1)]
该表达式产生的值为“null”:
?($['@odata.count'] > 1)
编辑2:这个问题应该问得更一般一点,我认为,它更多的是关于“如何在JSONPath中使用根属性/根属性/响应的直接子级”。我发现了一个类似的问题,答案完全不同:用jsonpath查询根元素的直接子元素
好吧,以下是我的工作:
$..[?(@.['@odata.count']
它给出了与表达式< code>$相同的数组..
(包含json响应的数组)。根据我自己的发现,它的作用是:
$...[]
-查看包含响应的数组
<代码>?(@.['@odata.count']
如果我错了,请纠正我。我只是不明白第三个点,即八个字符的区别。由于属性的名称,我认为在使用括号符号时不需要它。
看看在SoapUI中的测试套件的断言中使用它的最终目标,从长远来看,以下内容可能更具可读性和可定制性(应该在4小时前用时髦
的独奏研究过这个问题......):
import groovy.json.JsonSlurper
jsonResponse = new JsonSlurper().parseText(context.response)
odatacount = "${jsonResponse.'@odata.count'}"
assert odatacount > 1
我在尝试使用lambda表达式时遇到了这个错误。
EL表达式可以使用在任何接收动态内容的标签属性中。在这些属性中既可以只包含一个的EL表达式,也可以包含多个EL表达式和静态文本。 标签属性中只包含一个EL表达式的语法如下: <prefix:tag value = "${表达式}" /> 下面是标签属性包含一个单独EL表达式的示例代码: <jsp:setProperty property="age" name = "myBean" value="$
问题内容: 使用Sequelize ORM for Node.js,如何在select语句中使用CASE / WHEN表达式? 根据Sequelize文档,我看不到任何参考或示例来使用SQL表达式CASE。这可能吗? 这是我的示例: 的SQL 续集 数据库结构 预期结果: 问题答案: 您可以使用Sequelize.literal在建立特殊查询
本文向大家介绍如何在TestNG中使用正则表达式?,包括了如何在TestNG中使用正则表达式?的使用技巧和注意事项,需要的朋友参考一下 我们在TestNG中使用正则表达式来使用以某种模式命名的一组测试方法。 示例 Testng xml文件。 所有名称开头为Payment的测试方法都将从回归套件中排除。 示例 Login()将被执行,但是所有以名字Payment开头的方法都将被排除在执行之外。这是使
在使用带有xpath的正则表达式时,我对jayway jsonpath有意见。以下是我的json: 下面是我的表达式:resources[?(/_test1.CREDITPRINTFILE/.test(@.name))] 我得到以下错误: 我也尝试在在线评估工具中使用同样的表达:https://jsonpath.herokuapp.com/ Jayway-给出了相同的错误-预期路径节点Gatlin
问题内容: 我有这样的字符串: 而且我只需要使用regexp的href值提取: 每次的href值也可以不同,可以更长或更短 问题答案: 假设myString包含带有元素的字符串。 由于href属性不能嵌套,因此应该没问题,并且不需要完整的HTML解析器。一个限制是它只能在双引号中找到href属性。