У меня есть два запроса, которые возвращают ответ с аналогичной структурой JSON. Когда я пытаюсь использовать JSON Extractor на одном, он работает правильно, но когда я пытаюсь извлечь значение таким же образом из второго, он не работает. Но давайте перейдем к преследованию.
Мой первый ответ выглядит так:
{
"values": [
{
"id": 1,
"name": "Fendi",
"logoId": null,
"belongsToUser": true
},
{
"id": 2,
"name": "Jean Paul Gaultier",
"logoId": null,
"belongsToUser": true
},
{
"id": 3,
"name": "Nike",
"logoId": null,
"belongsToUser": false
},
{
"id": 4,
"name": "Adidas",
"logoId": null,
"belongsToUser": true
}
]
}
И я пытаюсь извлечь идентификатор объекта, который "ownToUser": false в этом экстракторе JSON:
JSON path expression: values[?(@.belongsToUser == false)].id
Match No.: 0
Default Values: null
И он прекрасно работает.
Однако, когда я пытаюсь таким образом использовать свой второй ответ, он не работает.
Ответ выглядит так:
{
"values": [
{
"id": 12,
"brandName": "Fendi",
"productCategoryName": "Shoes",
"size": "38",
"colorNames": [
"color_green"
],
"date": 1536537600000,
"imageId": null,
"title": "Money",
"numberOfOffers": 0,
"status": "ONGOING"
},
{
"id": 13,
"brandName": "Fendi",
"productCategoryName": "Shoes",
"size": "38",
"colorNames": [
"color_green"
],
"date": 1536537600000,
"imageId": null,
"title": "Exchange",
"numberOfOffers": 0,
"status": "ONGOING"
}
]
}
Я пытаюсь получить идентификатор объекта с заголовочной переменной = "Money" с помощью экстрактора JSON:
JSON path expression: values[?(@.title == 'Money')].id
Match No.: 0
Default Values: null
Но он не находит значение id и устанавливает для моей переменной JMeter значение null.
Я также пытался оставить Деньги без кавычек или в двойных кавычках и пробовал разные выражения пути JSON, например
$.values[?(@.title == 'Money')].id
$..[?(@.title == 'Money')].id
$.[?(@.title == 'Money')].id
Но, похоже, ничего из этого не работает. Есть ли у вас какие-либо идеи, как мое выражение пути JSON должно работать правильно?
И почему он не работает во втором случае, когда он работает в первом? Это потому, что объекты во втором ответе имеют внутренний массив?