Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a: SQL Server 2016 (13.x) e versões posteriores
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics (somente pool de SQL sem servidor)
endpoint de análise de SQL no Microsoft Fabric
Armazém no Microsoft Fabric
Banco de dados SQL no Microsoft Fabric
Para formatar automaticamente a saída da cláusula FOR JSON com base na estrutura da declaração SELECT, especifique a opção AUTO.
Quando você especifica a opção AUTO , o formato da saída JSON é determinado automaticamente com base na ordem das colunas na lista SELECT e nas tabelas de origem. Você não pode alterar esse formato.
A alternativa é usar a opção PATH para manter controle sobre a saída.
- Para obter mais informações sobre a opção
PATH, consulte Formatar Saída JSON Aninhada com o Modo PATH. - Para obter uma visão geral de ambas as opções, consulte Formatar os resultados da consulta como JSON com FOR JSON.
Uma consulta que usa a opção FOR JSON AUTO deve ter uma FROM cláusula.
Aqui estão alguns exemplos da FOR JSON cláusula com a opção AUTO . O Azure Data Studio é o editor de consulta recomendado para consultas JSON porque ele formata automaticamente os resultados JSON (como visto neste artigo) em vez de exibir uma cadeia de caracteres simples.
Examples
Exemplo 1
Query
Quando uma consulta faz referência a apenas uma tabela, os resultados da FOR JSON AUTO cláusula são semelhantes aos resultados de FOR JSON PATH. Nesse caso, FOR JSON AUTO não cria objetos aninhados. A única diferença é que FOR JSON AUTO gera aliases separados por pontos (por exemplo, Info.MiddleName no exemplo a seguir) como chaves com pontos, não como objetos aninhados.
SELECT TOP 5
BusinessEntityID As Id,
FirstName, LastName,
Title As 'Info.Title',
MiddleName As 'Info.MiddleName'
FROM Person.Person
FOR JSON AUTO
Result
[{
"Id": 1,
"FirstName": "Ken",
"LastName": "Sánchez",
"Info.MiddleName": "J"
}, {
"Id": 2,
"FirstName": "Terri",
"LastName": "Duffy",
"Info.MiddleName": "Lee"
}, {
"Id": 3,
"FirstName": "Roberto",
"LastName": "Tamburello"
}, {
"Id": 4,
"FirstName": "Rob",
"LastName": "Walters"
}, {
"Id": 5,
"FirstName": "Gail",
"LastName": "Erickson",
"Info.Title": "Ms.",
"Info.MiddleName": "A"
}]
Exemplo 2
Query
Quando você une tabelas, as colunas na primeira tabela são geradas como propriedades do objeto raiz. As colunas na segunda tabela são geradas como propriedades de um objeto aninhado. O nome da tabela ou o alias da segunda tabela (por exemplo, D no exemplo a seguir) é usado como o nome da matriz aninhada.
SELECT TOP 2 SalesOrderNumber,
OrderDate,
UnitPrice,
OrderQty
FROM Sales.SalesOrderHeader H
INNER JOIN Sales.SalesOrderDetail D
ON H.SalesOrderID = D.SalesOrderID
FOR JSON AUTO
Result
[{
"SalesOrderNumber": "SO43659",
"OrderDate": "2011-05-31T00:00:00",
"D": [{
"UnitPrice": 24.99,
"OrderQty": 1
}]
}, {
"SalesOrderNumber": "SO43659",
"D": [{
"UnitPrice": 34.40
}, {
"UnitPrice": 134.24,
"OrderQty": 5
}]
}]
Exemplo 3
Query
Em vez de usar o FOR JSON AUTO, você pode aninhar uma subconsulta FOR JSON PATH na instrução SELECT, conforme mostrado no exemplo a seguir. Este exemplo produz o mesmo resultado do exemplo anterior.
SELECT TOP 2
SalesOrderNumber,
OrderDate,
(SELECT UnitPrice, OrderQty
FROM Sales.SalesOrderDetail AS D
WHERE H.SalesOrderID = D.SalesOrderID
FOR JSON PATH) AS D
FROM Sales.SalesOrderHeader AS H
FOR JSON PATH
Result
[{
"SalesOrderNumber": "SO43659",
"OrderDate": "2011-05-31T00:00:00",
"D": [{
"UnitPrice": 24.99,
"OrderQty": 1
}]
}, {
"SalesOrderNumber": "SO4390",
"D": [{
"UnitPrice": 24.99
}]
}]
Saiba mais sobre o JSON no Mecanismo de Banco de Dados SQL
Para obter uma introdução visual ao suporte interno ao JSON, confira os seguintes vídeos: