Валидация JSON-объекта
Категория | Системная |
Применение | Сценарий |
Валидирует свойства JSON-объекта, полученного в любом предыдущем шаге сценария
Для доступа к свойствам JSON-объекта испозуется JSONPath
Синтаксис JSONPath
JSONPath — это язык получения значений из JSON-объекта
Есть JSON-объект, из которого необходимо получить данные:
Copied!{ "store": { "name": "Online store", "books": [ { "category": "reference", "author": "Nigel Rees", "title": "Sayings of the Century", "price": 8.95 }, { "category": "fiction", "author": "Evelyn Waugh", "title": "Sword of Honour", "price": 12.99 }, { "category": "fiction", "author": "Herman Melville", "title": "Moby Dick", "isbn": "0-553-21311-3", "price": 8.99 }, { "category": "fiction", "author": "J. R. R. Tolkien", "title": "The Lord of the Rings", "isbn": "0-395-19395-8", "price": 22.99 } ] } }
Для доступа к значениям объекта воспользуемся JSONPath
Синтаксис | Комментарий |
---|---|
. |
Доступ к дочернему элементу Использование: $.store.name // получаем имя магазина Результат: ["Online store"]
|
.. |
Рекурсивный доступ к дочернему элементу Использование: $..title // получаем все названия книг Результат: [ "Sayings of the Century", "Sword of Honour", "Moby Dick", "The Lord of the Rings"
|
@ |
Доступ к текущему элементу Использование: $..books[(@.length-1)] // получаем кол-во книг через @.length, затем берем последнюю Результат :[ "category": "fiction", "author": "J. R. R. Tolkien",
|
* |
Доступ к любому элементу массива Использование: $..books[*].author // получаем всех авторов Результат :[
|
[] |
Доступ к одному элементу массива по индексу Использование: $..books[0].author // получаем первого автора Результат :[
|
[,] | Доступ к нескольким элементам массива по индексу Использование: $..books[0,1].author // получаем первого и второго автора Результат :[
|
[start_index:end_index:step] |
Доступ к группе элементов массива Использование: $..books[1:3].author // сначала получаем вторую и третью книгу, затем получаем их авторов автора Результат :[
|
?() |
Доступ к элементам массива по фильтру Использование: $..books[?(@.price<10)] // получаем книги с ценой меньше 10 Результат :[
|
Параметры
Параметр | Комментарий |
---|---|
Валидируемый JSON-объект Обязательный |
JSON-объект, полученный в любом предыдущем шаге сценария Пример: — api_session |
Свойства JSON-объекта Обязательный Список |
Список валидируемых свойств JSON-объекта Параметры списка: — Свойство объекта: * Обязательный * JSONPath-выражение— Операция: * Обязательный— Значение: * Обязательный * Строка * Число * Число с плавающей точкой * Булевое значение * Переменная окружения * Фикстур * ПеременнаяПример: — uuid == 83bd75cc-5d1f-4e89-933d-1709f95f399e — items[0].uuid == {{ random_uuid }} |