Я пытаюсь выполнить stubbing с помощью Wiremock, чтобы предоставить ответ на основе тела, которое отправляется в почтовом запросе.Возврат json в Wiremock с использованием JSONPath на основе значения атрибута
Например, при отправке этого JSON:
{
"person": {
"firstName": "paul",
"age": "50"
}
}
Я хочу отправить pauldata.json
Это мой запрос/ответ JSON ниже:
{
"request": {
"method": "POST",
"url": "/api/test1",
"bodyPatterns": [
{
"matchesJsonPath": "$.person[?(@.firstName=='paul')]"
}
]
},
"response": {
"status": 200,
"bodyFileName": "pauldata.json",
"headers": {
"Content-Type": "application/json"
}
}
}
Однако это приводит к ошибка:
JSON path expression '$.person[?(@.firstName=='paul')]' failed to match document because of error 'net.minidev.json.JSONObject cannot be cast to java.util.List
это выражение: $ .person [? (@. FirstName == 'paul')] соответствует json с реализацией Jayway в http://jsonpath.herokuapp.com/, но не в реализации Goessner, которую использует Wiremock.
Я заметил, что если я просто делаю $ .person.firstName в jayway, он возвращает «paul», , но когда я делаю то же самое в Гесснере, я получаю [«paul»].
Как я могу совместить значение ключа с использованием реализации Jesserath Goessner, поэтому я могу вернуть пользовательский json на основе значения ключа в моих данных?