Partilhar via


Remover colchetes do JSON - Opção "WITHOUT_ARRAY_WRAPPER"

Aplica-se a: SQL Server 2016 (13.x) e versões posterioresAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics (apenas serverless SQL pool)endpoint de análise SQL no Microsoft FabricArmazém de Dados no Microsoft FabricBase de dados SQL 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.

Query

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.

Query

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

Para obter uma introdução visual ao suporte JSON integrado, consulte os seguintes vídeos: