Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
применимо к: SQL Server 2016 (13.x) и более поздним версиям
Базе данных SQL Azure
Управляемому экземпляру SQL Azure
Azure Synapse Analytics (только бессерверный пул SQL)
конечной точке аналитики SQL в хранилище microsoft Fabric
в Microsoft Fabric
Чтобы удалить квадратные скобки, которые по умолчанию окружают JSON-вывод FOR JSON
предложения, укажите параметр WITHOUT_ARRAY_WRAPPER
. Используйте этот параметр с результатом из одной строки, чтобы создать в качестве вывода единый объект JSON вместо массива с одним элементом.
При применении к многострочному результату выходные данные не будут представлять собой действительный объект JSON в связи с использованием сразу нескольких компонентов и отсутствием квадратных скобок.
Пример (однострочный результат)
В следующем примере показаны выходные данные предложения FOR JSON
с параметром WITHOUT_ARRAY_WRAPPER
и без нее.
Запрос
SELECT 2015 as year, 12 as month, 15 as day
FOR JSON PATH, WITHOUT_ARRAY_WRAPPER
результат с опцией WITHOUT_ARRAY_WRAPPER
{
"year": 2015,
"month": 12,
"day": 15
}
результат (по умолчанию) без параметра WITHOUT_ARRAY_WRAPPER
[{
"year": 2015,
"month": 12,
"day": 15
}]
Пример (многострочный результат)
Ниже приведен еще один пример предложения FOR JSON
с параметром WITHOUT_ARRAY_WRAPPER
и без нее. В этом примере создается результат, состоящий из нескольких строк. Выходные данные не являются допустимым объектом JSON в связи с использованием сразу нескольких компонентов и отсутствием квадратных скобок.
Запрос
SELECT TOP 3 SalesOrderNumber, OrderDate, Status
FROM Sales.SalesOrderHeader
ORDER BY ModifiedDate
FOR JSON PATH, WITHOUT_ARRAY_WRAPPER
Результат с опцией WITHOUT_ARRAY_WRAPPER
{
"SalesOrderNumber": "SO43662",
"OrderDate": "2011-05-31T00:00:00",
"Status": 5
}, {
"SalesOrderNumber": "SO43661",
"OrderDate": "2011-05-31T00:00:00",
"Status": 5
}, {
"SalesOrderNumber": "SO43660",
"OrderDate": "2011-05-31T00:00:00",
"Status": 5
}
результат (по умолчанию) без опции WITHOUT_ARRAY_WRAPPER
[{
"SalesOrderNumber": "SO43662",
"OrderDate": "2011-05-31T00:00:00",
"Status": 5
}, {
"SalesOrderNumber": "SO43661",
"OrderDate": "2011-05-31T00:00:00",
"Status": 5
}, {
"SalesOrderNumber": "SO43660",
"OrderDate": "2011-05-31T00:00:00",
"Status": 5
}]
Дополнительные сведения о JSON в ядре СУБД SQL
Видео Майкрософт
Наглядные инструкции по встроенной поддержке JSON в SQL Server и базе данных SQL Azure см. в следующих видео.
- JSON as a bridge between NoSQL and relational worlds (JSON как мост между NoSQL и реляционными решениями)