Сворачивание полей

Преобразование fold сворачивает значения одного или нескольких полей в пару свойств: key содержит имя исходного поля, а value — его значение. Такой переход от широкой таблицы к длинной удобен, например, для приведения матриц и перекрёстных таблиц к стандартному формату. Каждая выходная запись также сохраняет все исходные поля.

Примечание: fold применяется только к списку известных полей, заданному свойством fold. Если значения полей сами являются массивами, используйте разворачивание flatten.

// Любая спецификация представления
{
  ...,
  "transform": [
    {"fold": ...}, // Сворачивание полей
    ...
  ],
  ...
}

Свойства преобразования

Свойство Тип Описание
fold FieldName[] Обязательный массив имён полей, значения которых нужно свернуть.
as FieldName[] Необязательные имена двух выходных полей: сначала для ключа, затем для значения. По умолчанию — ["key", "value"].

Использование

{"fold": ["gold", "silver"]}

Этот пример сворачивает свойства "gold" и "silver". Для входных данных:

[
  {"country": "USA", "gold": 10, "silver": 20},
  {"country": "Canada", "gold": 7, "silver": 26}
]

выходные записи будут такими:

[
  {"key": "gold", "value": 10, "country": "USA", "gold": 10, "silver": 20},
  {"key": "silver", "value": 20, "country": "USA", "gold": 10, "silver": 20},
  {"key": "gold", "value": 7, "country": "Canada", "gold": 7, "silver": 26},
  {"key": "silver", "value": 26, "country": "Canada", "gold": 7, "silver": 26}
]

Пример