Jmeter-Json路径提取器-条件选择
我试图有条件地从以下示例json响应中提取元素的值:Jmeter-Json路径提取器-条件选择,json,jmeter,Json,Jmeter,我试图有条件地从以下示例json响应中提取元素的值: { "books": [ { "title": "book 1 title", "author": { "firstName": "author01", "lastName": "abc" } } { "title": "book 2 title", "author": {
{
"books": [
{
"title": "book 1 title",
"author": {
"firstName": "author01",
"lastName": "abc"
}
}
{
"title": "book 2 title",
"author": {
"firstName": "author02",
"lastName": "xyz"
}
}
]
}
我想选择lastName==xyz的书名。下面是我使用的表达式:
$.books[?@.author.lastName=='xyz']
但它返回[]
谢谢您的JSON路径表达式是正确的,演示: 但是,您的JSON存在一个问题:
{
"books": [
{
"title": "book 1 title",
"author": {
"firstName": "author01",
"lastName": "abc"
}
}, <-----------------------------you need the comma here
{
"title": "book 2 title",
"author": {
"firstName": "author02",
"lastName": "xyz"
}
}
]
}
如果您的响应无法解析为有效的JSON,则必须使用。如果是-请仔细检查您的JSON路径表达式,也值得检查您的JSON路径表达式是否正确,演示: 但是,您的JSON存在一个问题:
{
"books": [
{
"title": "book 1 title",
"author": {
"firstName": "author01",
"lastName": "abc"
}
}, <-----------------------------you need the comma here
{
"title": "book 2 title",
"author": {
"firstName": "author02",
"lastName": "xyz"
}
}
]
}
如果您的响应无法解析为有效的JSON,则必须使用。如果是-请仔细检查您的JSON路径表达式,也值得一试下面的表达式:
$.books[?@.author.lastName=='xyz'].title请尝试以下表达式:
$.books[?@.author.lastName=='xyz'].title@Dimitri,我的错。我忘了逗号。我的意思是我的表达式是$.books[?@.author.lastName=='xyz'].title抱歉重复,但我无法编辑我的问题。不知道为什么。下面是我对表达式的想法:1.$。书籍->获取一组书籍2.?->文件管理器3.?@。author.lastName=='xyx'-->选择作者对象的lastName并与xyz进行比较。但是,它不起作用。看起来像?只能取第一级对象。low?@.title=='Book2 title'可以。不管怎样,thanks@Dimitri,我的错。我忘了逗号。我的意思是我的表达式是$.books[?@.author.lastName=='xyz'].title抱歉重复,但我无法编辑我的问题。不知道为什么。下面是我对表达式的想法:1.$。书籍->获取一组书籍2.?->文件管理器3.?@。author.lastName=='xyx'-->选择作者对象的lastName并与xyz进行比较。但是,它不起作用。看起来像?只能取第一级对象。low?@.title=='Book2 title'可以。无论如何,谢谢