Чтение и запись
Обратите внимание
Документация на русском языке может быть устаревшей. Самые последние изменения доступны в документации на английском языке.
В этом разделе показаны примеры чтения из входных данных (data.input
) и записи в выходные данные (data.output
).
Чтение и запись в промежуточные данные (data.internal
) осуществляется таким же образом.
О том, как ввести внутри объекта во входных данных кавычки вида "
, обратную косую черту \
, перенос строки или табуляцию, читайте в разделе Если вы не знакомы с JSON. Об экранировании в TSV-файле читайте в Руководстве заказчика.
Простой пример
Допустим, вы хотите вывести текст с вопросом из входных данных и записать ответ в выходные данные. Пример входных данных:
{
"question": "А вы купили бы слона?"
}
Пример отображения вопроса в компоненте view.text:
{
"type": "view.text",
"label": "Ответьте на вопрос:",
"content": {
"type": "data.input",
"path": "question"
}
}
Пример записи ответа с помощью компонента field.radio-group:
{
"type": "field.radio-group",
"options": [...],
"data": {
"type": "data.output",
"path": "verdict"
}
}
Когда вы ответите положительно и нажмете Отправить, результат будет таким:
{
"output": {
"verdict": true
}
}
Чтение входных данных с типом JSON
Если во входных данных вы передаете JSON-объект и хотите получить значение для какого-то вложенного ключа, то укажите путь к нему, используя точку в качестве разделителя.
Допустим, во входных данных у вас есть объект, описывающий адрес регистрации.
{
"name": "Ivan Ivanov",
"registration_аddress": {
"country": "Russia",
"city": "Moscow",
"address": "Tverskaya str, 3-53"
},
...
Чтобы отобразить в интерфейсе значение из свойства city, укажите путь к нему через точку:
{
"type": "data.input",
"path": "registration_аddress.city"
}
Запись данных с типом JSON
Аналогично осуществляется запись в выходные данные. Если вы укажете путь через точку, то в спецификации поле с выходными данными будет иметь тип объект.
Чтение данных с типом "массив"
Чтобы получить значение из конкретного элемента массива, укажите в пути его порядковый номер, начиная с нуля.
Например, во входных данных указан массив ссылок на изображения:
{
"images": [
"https://cdn.stocksnap.io/img-thumbs/960w/surfer-wave_3DBOYBPB3X.jpg",
"https://cdn.stocksnap.io/img-thumbs/960w/fisherman-silhouette_UADULRRHEK.jpg",
"https://cdn.stocksnap.io/img-thumbs/960w/old-photo_GEQ27OWZVV.jpg"
]
}
Сослаться на конкретный элемент массива можно так:
"url": {
"type": "data.input",
"path": "images.<Номер элемента, начиная с нуля>"
}
Если длина массива неизвестна или он очень большой, вы можете получить все значения массива с помощью компонента helper.transform.
Например, вы можете преобразовать массив ссылок на изображения в массив компонентов view.image, чтобы отобразить их в интерфейсе.
Запись данных с типом "массив"
По аналогии с чтением элементов из массива, вы также можете записывать результаты в виде массива. Для этого укажите в свойстве path
путь к массиву и номер элемента, начиная с нуля. Например:
{
"type": "data.output",
"path": "images.0"
}