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 manter o controle total sobre a saída da FOR JSON cláusula, especifique a opção PATH .
PATH modo permite criar objetos wrapper e aninhar propriedades complexas. Os resultados são formatados como uma matriz de objetos JSON.
A alternativa é usar a opção AUTO para formatar a saída automaticamente com base na estrutura da SELECT instrução.
- Para obter mais informações sobre a opção
AUTO, consulte Formatar saída JSON automaticamente com o modo AUTO . - Para obter uma visão geral de ambas as opções, consulte Formatar os resultados da consulta como JSON com FOR JSON.
Aqui estão alguns exemplos da FOR JSON cláusula com a opção PATH . Formate resultados aninhados usando nomes de colunas separados por ponto ou por meio de consultas aninhadas, conforme mostrado nos exemplos a seguir. Por padrão, os valores nulos não são incluídos na FOR JSON saída. 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.
Exemplo: nomes de colunas separadas por pontos
A consulta a seguir formata as primeiras cinco linhas da tabela AdventureWorks Person como JSON.
A cláusula FOR JSON PATH utiliza o alias de coluna ou o nome da coluna para determinar o nome da chave na saída JSON. Se um alias contiver pontos, a opção PATH criará objetos aninhados.
Query
SELECT TOP 5
BusinessEntityID As Id,
FirstName, LastName,
Title As 'Info.Title',
MiddleName As 'Info.MiddleName'
FROM Person.Person
FOR JSON PATH
Result
[{
"Id": 1,
"FirstName": "Ken",
"LastName": "Sanchez",
"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.",
"MiddleName": "A"
}
}]
Exemplo: várias tabelas
Se você fizer referência a mais de uma tabela em uma consulta, FOR JSON PATH aninha cada coluna usando seu respectivo alias. A consulta a seguir cria um objeto JSON por par (OrderHeader, OrderDetails) unido na consulta.
Query
SELECT TOP 2 H.SalesOrderNumber AS 'Order.Number',
H.OrderDate AS 'Order.Date',
D.UnitPrice AS 'Product.Price',
D.OrderQty AS 'Product.Quantity'
FROM Sales.SalesOrderHeader H
INNER JOIN Sales.SalesOrderDetail D
ON H.SalesOrderID = D.SalesOrderID
FOR JSON PATH
Result
[{
"Order": {
"Number": "SO43659",
"Date": "2011-05-31T00:00:00"
},
"Product": {
"Price": 2024.9940,
"Quantity": 1
}
}, {
"Order": {
"Number": "SO43659"
},
"Product": {
"Price": 2024.9940
}
}]
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: