Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. 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 (apenas serverless SQL pool)
endpoint de análise SQL no Microsoft Fabric
Armazém de Dados no Microsoft Fabric
Base de dados SQL no Microsoft Fabric
Para formatar automaticamente a cláusula FOR JSON com base na estrutura da declaração SELECT, especifique a opção AUTO.
Quando você especifica a AUTO opção, o formato da saída JSON é determinado automaticamente com base na ordem das colunas na lista SELECT e suas tabelas de origem. Não é possível alterar este formato.
A alternativa é usar a opção PATH para manter o controle sobre a saída.
- Para saber mais sobre a
PATHopção, veja Formatar saída JSON aninhada com o modo PATH. - Para obter uma visão geral de ambas as opções, consulte Formatar resultados da consulta como JSON com FOR JSON.
Uma consulta que usa a FOR JSON AUTO opção deve ter uma FROM cláusula.
Aqui estão alguns exemplos da cláusula FOR JSON com a opção AUTO.
do Azure Data Studio é o editor de consultas recomendado para consultas JSON porque 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 FOR JSON AUTO resultados da 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 produz aliases separados por pontos (por exemplo, Info.MiddleName no exemplo a seguir) como chaves separadas por 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 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 FOR JSON AUTO, pode-se aninhar uma subconsulta FOR JSON PATH na instrução SELECT, como mostrado no exemplo a seguir. Este exemplo produz o mesmo resultado que o 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 JSON no Mecanismo de Banco de Dados SQL
Para obter uma introdução visual ao suporte JSON integrado, consulte os seguintes vídeos: