Jmeter-Json路径提取器-条件选择

Jmeter-Json路径提取器-条件选择,json,jmeter,Json,Jmeter,我试图有条件地从以下示例json响应中提取元素的值: { "books": [ { "title": "book 1 title", "author": { "firstName": "author01", "lastName": "abc" } } { "title": "book 2 title", "author": {

我试图有条件地从以下示例json响应中提取元素的值:

{
    "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'可以。无论如何,谢谢