Парсер 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, могут также содержать сложные структуры: массивы и хэш-таблицы. Для обращения к значениям, которые содержатся в этих структурах, необходимо использовать следующие фильтры:

Пример:

Для запроса

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'ах

Фильтр 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 ""