Парсер Json_doc
Парсер Json_doc предназначен для работы с данными в формате JSON, которые могут размещаться в любых частях запроса. Парсер Json_doc указывает на содержимое верхнеуровневого контейнера для JSON-данных в сыром виде.
Парсер Json_doc строит на основе входных данных сложную структуру, к элементам которой можно обращаться при помощи следующих фильтров:
Имя парсера Json_doc в верхнем регистре необходимо всегда указывать в point'е перед использованием фильтров, предоставляемых этим парсером. Чтобы использовать фильтр в point’е, добавьте в point название фильтра в верхнем регистре.
Пример:
Для запроса
POST http://example.com/main/login HTTP/1.1
Content-type: application/json
с телом
{
"username": "admin",
"info":{
"firstName": "John",
"lastName": "Smith"
}
}
парсер Json_doc при применении к телу запроса будет указывать на следующие данные:
{
"username": "admin",
"info":{
"firstName": "John",
"lastName": "Smith"
}
}
Фильтр Json_obj
Фильтр Json_obj указывает на хэш-таблицу объектов JSON. К элементам этой хэш-таблицы необходимо обращаться по имени объекта JSON.
Использование регулярных выражений в point'ах
Имя объекта JSON в point'е может являться регулярным выражением языка программирования Ruby.
Фильтр Hash в применении к данным в формате JSON работает аналогично фильтру Json_obj.
Значения, хранящиеся в хэш-таблицах в формате JSON, могут также содержать сложные структуры: массивы и хэш-таблицы. Для обращения к значениям, которые содержатся в этих структурах, необходимо использовать следующие фильтры:
- Array или Json_array для массивов;
- Hash или Json_obj для хэш-таблиц.
Пример:
Для запроса
POST http://example.com/main/login HTTP/1.1
Content-type: application/json
с телом
{
"username": "user",
"rights": "read"
}
при применении к телу запроса совместно с парсером Json_doc фильтр Json_obj будет указывать на следующую хэш-таблицу:
Ключ | Значение |
---|---|
username | user |
rights | read |
- Point
POST_JSON_DOC_JSON_OBJ_username_value
будет ссылаться на значениеuser
; - Point
POST_JSON_DOC_JSON_OBJ_rights_value
будет ссылаться на значениеread
.
Фильтр Json_array
Фильтр Json_array указывает на массив значений объекта JSON. К элементам этого массива необходимо обращаться по индексу. Индексация массива начинается с нуля.
Использование регулярных выражений в point'ах
Индекс в point'е может являться регулярным выражением языка программирования Ruby.
Фильтр Array в применении к данным в формате JSON работает аналогично фильтру Json_array.
Значения, хранящиеся в массивах в формате JSON, могут также содержать хэш-таблицы. Для обращения к значениям, которые содержатся в хэш-таблицах, необходимо использовать фильтр Hash или Json_obj.
Пример:
Для запроса
POST http://example.com/main/login HTTP/1.1
Content-type: application/json
с телом
{
"username": "user",
"rights":["read","write"]
}
при применении к JSON-объекту rights
в теле запроса совместно с парсером Json_doc и фильтром Json_obj фильтр Json_array будет указывать на следующий массив значений:
Индекс | Значение |
---|---|
0 | read |
1 | write |
- Point
POST_JSON_DOC_JSON_OBJ_rights_JSON_ARRAY_0_value
будет ссылаться на значениеread
, которое находится в массиве значений JSON-объектаrights
, на который указывает фильтр Json_array, с индексом0
; - Point
POST_JSON_DOC_JSON_OBJ_rights_JSON_ARRAY_1_value
будет ссылаться на значениеwrite
, которое находится в массиве значений JSON-объектаrights
, на который указывает фильтр Json_array, с индексом1
.
results matching ""
No results matching ""
results matching ""
No results matching ""