Supprimer les crochets de JSON - Option WITHOUT_ARRAY_WRAPPER
S’applique à : SQL Server 2016 (13.x) et versions ultérieures Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics (pool SQL serverless uniquement)
Pour supprimer les crochets qui entourent par défaut la sortie JSON de la clause FOR JSON, spécifiez l’option WITHOUT_ARRAY_WRAPPER. Utilisez cette option avec un résultat d’une seule ligne pour générer un seul objet JSON en tant que sortie au lieu d’un tableau avec un seul élément.
Si vous utilisez cette option avec un résultat de plusieurs lignes, la sortie résultante n’est pas un JSON valide en raison de la présence de plusieurs éléments et de l’absence de crochets.
Exemple (résultat d’une seule ligne)
L’exemple suivant montre la sortie de la clause FOR JSON avec et sans l’option WITHOUT_ARRAY_WRAPPER .
Requête
SELECT 2015 as year, 12 as month, 15 as day
FOR JSON PATH, WITHOUT_ARRAY_WRAPPER
Résultat avec l’option WITHOUT_ARRAY_WRAPPER
{
"year": 2015,
"month": 12,
"day": 15
}
Résultat (par défaut) sans l’option WITHOUT_ARRAY_WRAPPER
[{
"year": 2015,
"month": 12,
"day": 15
}]
Exemple (résultat de plusieurs lignes)
Voici un autre exemple de clause FOR JSON avec et sans l’option WITHOUT_ARRAY_WRAPPER . Cet exemple produit un résultat de plusieurs lignes. La sortie n’est pas un JSON valide en raison de la présence de plusieurs éléments et de l’absence de crochets.
Requête
SELECT TOP 3 SalesOrderNumber, OrderDate, Status
FROM Sales.SalesOrderHeader
ORDER BY ModifiedDate
FOR JSON PATH, WITHOUT_ARRAY_WRAPPER
Résultat avec l’option WITHOUT_ARRAY_WRAPPER
{
"SalesOrderNumber": "SO43662",
"OrderDate": "2011-05-31T00:00:00",
"Status": 5
}, {
"SalesOrderNumber": "SO43661",
"OrderDate": "2011-05-31T00:00:00",
"Status": 5
}, {
"SalesOrderNumber": "SO43660",
"OrderDate": "2011-05-31T00:00:00",
"Status": 5
}
Résultat (par défaut) sans l’option WITHOUT_ARRAY_WRAPPER
[{
"SalesOrderNumber": "SO43662",
"OrderDate": "2011-05-31T00:00:00",
"Status": 5
}, {
"SalesOrderNumber": "SO43661",
"OrderDate": "2011-05-31T00:00:00",
"Status": 5
}, {
"SalesOrderNumber": "SO43660",
"OrderDate": "2011-05-31T00:00:00",
"Status": 5
}]
En savoir plus sur JSON dans SQL Server et Azure SQL Database
Vidéos Microsoft
Remarque
Certains des liens vidéo de cette section peuvent ne pas fonctionner pour l’instant. Microsoft migre le contenu précédemment disponible sur Channel 9 vers une nouvelle plateforme. Nous allons mettre à jour les liens au fur et à mesure que les vidéos sont migrées vers la nouvelle plateforme.
Pour obtenir une présentation visuelle de la prise en charge intégrée de JSON dans SQL Server et Azure SQL Database, consultez les vidéos suivantes :