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 conserver un contrôle total sur la sortie de la FOR JSON clause, spécifiez l’option PATH .
PATH mode vous permet de créer des objets wrapper et d’imbriquer des propriétés complexes. Les résultats sont présentés sous la forme de tableau d’objets JSON.
L’alternative consiste à utiliser l’option AUTO permettant de mettre en forme automatiquement la sortie en fonction de la structure de l’instruction SELECT .
- Pour plus d’informations sur l’option, consultez
AUTOsortie JSON avec le mode AUTO. - 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.
Voici quelques exemples de la FOR JSON clause avec l’option PATH . Formatez les résultats imbriqués en utilisant des noms de colonne séparés par des points ou des requêtes imbriquées, comme indiqué dans les exemples suivants. Par défaut, les valeurs Null ne sont pas incluses dans la FOR JSON sortie.
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.
Exemple : noms de colonne séparés par des points
La requête suivante met en forme les cinq premières lignes de la table AdventureWorks Person au format JSON.
La FOR JSON PATH clause utilise l’alias de colonne ou le nom de colonne pour déterminer le nom de clé dans la sortie JSON. Si un alias contient des points, l’option PATH crée des objets imbriqués.
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"
}
}]
Exemple : plusieurs tables
Si vous référencez plusieurs tables dans une requête, FOR JSON PATH imbriquez chaque colonne à l’aide de son alias. La requête suivante crée un objet JSON par paire (OrderHeader, OrderDetails) jointe à la requête.
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
}
}]
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 :