JSON из SQL-запроса с дочерним уровнем - PullRequest
1 голос
/ 17 октября 2019

У меня есть простой запрос в моей базе данных:

SELECT id, name FROM users FOR JSON AUTO, ROOT('users')

Это возвращает следующий JSON:

{
    "users": [
        {"id": "1", "name": "John"}
        {"id": "2", "name": "Mike"}
    ]
}

Я хочу получить возврат в следующем формате:

{
    "users": {
        "list": [
            {"id": "1", "name": "John"}
            {"id": "2", "name": "Mike"}
        ]
    }
}

Можно ли сделать это на уровне SQL, просто изменив запрос?

1 Ответ

5 голосов
/ 17 октября 2019

Вы можете попробовать это:

Таблица:

CREATE TABLE users (
   id varchar(1),
   [name] varchar(50)
)
INSERT INTO users
   (id, [name])
VALUES
   ('1', 'John'),
   ('2', 'Mike')

Заявление:

SELECT users = (SELECT id, name FROM users FOR JSON AUTO, ROOT('list'))
FOR JSON PATH, WITHOUT_ARRAY_WRAPPER

Результат:

{"users":{"list":[{"id":"1","name":"John"},{"id":"2","name":"Mike"}]}}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...