Я тестирую веб-сервис SOAP с использованием каратэ. Один из методов заключается в том, что в зависимости от запроса ответ может возвращать одно или несколько совпадений. При преобразовании этого XML-ответа в JSON, если есть только один результат, он интерпретируется как объект, но если их больше, то это массив.
Есть ли способ сделать это для заданного пути, он всегда возвращается в виде массива?
Пример XML только с одним совпадением:
<matches>
<product>...</product>
</matches
Результирующая структура JSON:
{
matches: {
product: ...,
}
}
Пример XML с более чем однимmatch:
<matches>
<product>...</product>
<product>...</product>
<product>...</product>
</matches
Результирующая структура JSON:
{
matches: [
{ product: ... },
{ product: ... },
{ product: ... },
]
}
Глядя на документацию от get , он говорит:
Aудобство, которое поддерживает синтаксис get (но не форма $ short-cut), состоит в том, чтобы возвращать один элемент, если правая часть вычисляет результат в виде списка (например, массив JSON). Это полезно, потому что в тот момент, когда вы используете подстановочный знак [*] или поисковый фильтр в JsonPath (см. Следующий раздел), вы возвращаете массив - хотя обычно вас интересует только первый элемент.
Но я пытался и не получил его на работу. Я не знаю, так ли это, или есть лучший или рабочий.