Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
Pour mettre en forme automatiquement la sortie de la FOR JSON clause en fonction de la structure de l’instruction SELECT , spécifiez l’option AUTO .
Lorsque vous spécifiez l’option AUTO , le format de la sortie JSON est automatiquement déterminé en fonction de l’ordre des colonnes dans la liste SELECT et de leurs tables sources. Vous ne pouvez pas modifier ce format.
L'autre possibilité est d'utiliser l'option PATH pour garder le contrôle sur le résultat.
- Pour plus d’informations sur l’option
PATH, consultez Mettre en forme la sortie JSON imbriquée avec le mode PATH. - Pour obtenir une vue d’ensemble des deux options, consultez Mettre en forme les résultats de la requête au format JSON avec FOR JSON.
Une requête qui utilise l’option FOR JSON AUTO doit avoir une FROM clause.
Voici quelques exemples de la FOR JSON clause avec l’option AUTO .
Azure Data Studio est l’éditeur de requête recommandé pour les requêtes JSON, car il met en forme automatiquement les résultats JSON (comme indiqué dans cet article) au lieu d’afficher une chaîne plate.
Examples
Exemple 1
Query
Lorsqu’une requête référence une seule table, les résultats de la FOR JSON AUTO clause sont similaires aux résultats de FOR JSON PATH. Dans ce cas, FOR JSON AUTO ne crée pas d’objets imbriqués. La seule différence est que FOR JSON AUTO produit des alias séparés par des points (par exemple, Info.MiddleName dans l’exemple suivant) en tant que clés avec des points, et non pas comme des objets imbriqués.
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"
}]
Exemple 2
Query
Lorsque vous joignez des tables, les colonnes de la première table sont générées en tant que propriétés de l’objet racine. Les colonnes de la seconde table sont générées en tant que propriétés d’un objet imbriqué. Le nom de la table ou l’alias de la deuxième table (par exemple, D dans l’exemple suivant) est utilisé comme nom du tableau imbriqué.
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
}]
}]
Exemple 3
Query
Au lieu d’utiliser FOR JSON AUTO, vous pouvez imbriquer une sous-requête FOR JSON PATH dans l’instruction SELECT, comme illustré dans l’exemple suivant. Cet exemple génère le même résultat que l’exemple précédent.
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
}]
}]
En savoir plus sur JSON dans le moteur de base de données SQL
Pour une présentation visuelle de la prise en charge JSON intégrée, consultez les vidéos suivantes :