Преобразование плоской структуры в иерархический JSON

У меня сложная структура базы данных с большим количеством отношений "один-ко-многим".

Например. Модели:

  1. опрос
  2. вопросы

Отношения "один ко многим" между ними.

Для фроттенда я хочу подготовить точный json. Но я хочу выполнить только один запрос к базе данных.

Таким образом, из базы данных я извлеку плоскую структуру:

Poll ID    Poll name    Candidate ID     Candidate name
1          Election     1                Billy the Labourist
1          Election     2                John the Communist
1          Election     3                Peter the Baptist

Но для фронтенда мне нужно точное отражение JSON:

Poll: [1, Election
           [Candidates: [[1, Billy the Labourist],
                         [2, John the Communist],
                         [3, Peter the Baptist]]]]

Единственное возможное решение, которое приходит мне в голову, это запустить цикл и просто подготовить json "вручную". Я не думаю, что это лучшее решение.

Подскажите, пожалуйста, как наиболее элегантно достичь поставленной цели? Некоторые библиотеки или готовые приложения приветствуются?

Вернуться на верх