Remover colchetes do JSON - Opção "WITHOUT_ARRAY_WRAPPER"
Aplica-se a: SQL Server 2016 (13.x) e versões posteriores
Banco de Dados SQL do Azure
Instância Gerenciada SQL do Azure
Azure Synapse Analytics (somente pool SQL sem servidor)
ponto de extremidade de análise SQL no Microsoft Fabric
Warehouse no Microsoft Fabric
Para remover os colchetes que cercam a saída JSON da cláusula FOR JSON
por padrão, especifique a opção WITHOUT_ARRAY_WRAPPER
. Use essa opção com um resultado de linha única para gerar um único objeto JSON como saída, em vez de uma matriz com um único elemento.
Se você usar essa opção com um resultado de várias linhas, a saída resultante não será JSON válida devido aos vários elementos e aos colchetes ausentes.
Exemplo (resultado de linha única)
O exemplo a seguir mostra a saída da cláusula FOR JSON
com e sem a opção WITHOUT_ARRAY_WRAPPER
.
Consulta
SELECT 2015 as year, 12 as month, 15 as day
FOR JSON PATH, WITHOUT_ARRAY_WRAPPER
Resultado com a opção WITHOUT_ARRAY_WRAPPER
{
"year": 2015,
"month": 12,
"day": 15
}
Resultado (padrão) sem a opção WITHOUT_ARRAY_WRAPPER
[{
"year": 2015,
"month": 12,
"day": 15
}]
Exemplo (resultado de várias linhas)
Aqui está outro exemplo de uma cláusula FOR JSON
com e sem a opção WITHOUT_ARRAY_WRAPPER
. Este exemplo produz um resultado de várias linhas. A saída não é JSON válida devido aos vários elementos e aos colchetes ausentes.
consulta
SELECT TOP 3 SalesOrderNumber, OrderDate, Status
FROM Sales.SalesOrderHeader
ORDER BY ModifiedDate
FOR JSON PATH, WITHOUT_ARRAY_WRAPPER
Resultado com a opção 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
}
Resultado (padrão) sem a opção 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
}]
Saiba mais sobre JSON no Mecanismo de Banco de Dados SQL
Vídeos da Microsoft
Para obter uma introdução visual ao suporte JSON interno no SQL Server e no Banco de Dados SQL do Azure, consulte os seguintes vídeos: