Начало » Использование СУБД » PostgreSQL » Как правильно написать json запрос на PostgreeSQL
Как правильно написать json запрос на PostgreeSQL [сообщение #6128] |
Tue, 24 June 2025 19:22  |
akakia
Сообщений: 3 Зарегистрирован: June 2025
|
Junior Member |
|
|
Здравствуйте. Прошу вашей помощи. Подскажите мне, пожалуйста, как правильно мне оформить запрос, чтобы вернулся корректный json ?
Вот мой запрос:
SELECT array(SELECT json_build_object(
'department_id', d.department_id,
'department_name', dep.name,
'employeesDetails', (array(select json_build_object('id', e.id,
'fio', e.fio,
'resources', (array(select json_build_object(
'active_time', e.active_time,
'idle_time', e.idle_time,
'type_app', e.type_app,
'name_app', e.name_app
)
FROM employee_productivity e
WHERE e.department_id = d.department_id) )
)
FROM employee_productivity e
WHERE e.department_id = d.department_id))
)
FROM public.departments_productivity d
inner join central.organization_department dep on dep.id = d.department_id
where date >= '2025-06-01' and date <= '2025-06-30'
)
после его выполнения я получаю некорректный json. Он весь экранирован кавычками, json валидаторы на него ругаются.
Вот что я получаю:
{"{\"department_id\" : \"bbe8601771c54b219d93a6b769078b37\", \"department_name\" : \"Тестирование\", \"employeesDetails\" : [{\"id\" : 2, \"fio\" : \"Charov Vlad\", \"resources\" : [{\"active_time\" : 1800, \"idle_time\" : 21000, \"type_app\" : \"PROGRAM\", \"name_app\" : \"Telegram\"}]}]}","{\"department_id\" : \"bbe8601771c54b219d93a6b769078b37\", \"department_name\" : \"Тестирование\", \"employeesDetails\" : [{\"id\" : 2, \"fio\" : \"Charov Vlad\", \"resources\" : [{\"active_time\" : 1800, \"idle_time\" : 21000, \"type_app\" : \"PROGRAM\", \"name_app\" : \"Telegram\"}]}]}","{\"department_id\" : \"bbe8601771c54b219d93a6b769078b37\", \"department_name\" : \"Тестирование\", \"employeesDetails\" : [{\"id\" : 2, \"fio\" : \"Charov Vlad\", \"resources\" : [{\"active_time\" : 1800, \"idle_time\" : 21000, \"type_app\" : \"PROGRAM\", \"name_app\" : \"Telegram\"}]}]}","{\"department_id\" : \"bbe8601771c54b219d93a6b769078b37\", \"department_name\" : \"Тестирование\", \"employeesDetails\" : [{\"id\" : 2, \"fio\" : \"Charov Vlad\", \"resources\" : [{\"active_time\" : 1800, \"idle_time\" : 21000, \"type_app\" : \"PROGRAM\", \"name_app\" : \"Telegram\"}]}]}"}
А мне нужно получить вот такую структуру:
"employeesProductivity": [
{
"departmentId": 24,
"departmentName": "Дизайн",
"employeesDetails": [
"employeeId": 98,
"employeeName": "Иван Петров",
"resources": [
{
"type": "PROGRAM",
"name": "Telegram",
"category": "Work",
"categoryId": 2,
"grade": "PRODUCTIVE",
"activeTime": "12:43",
"idleTime": "0:58"
}
]
]
}
]
как мне улучшить мой запрос ?
[Обновления: Tue, 24 June 2025 19:23] Известить модератора
|
|
|
|
|
Переход к форуму:
Текущее время: Mon Jun 30 01:52:48 GMT+3 2025
Общее время, затраченное на создание страницы: 0.01030 секунд
|