Compartilhar via


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 AzureInstância Gerenciada SQL do AzureAzure Synapse Analytics (somente pool SQL sem servidor)ponto de extremidade de análise SQL no Microsoft FabricWarehouse 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: