Ajouter un nœud racine à la sortie JSON avec l’option ROOT (SQL Server)

S’applique à : SQL Server 2016 (13.x) et versions ultérieures Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics (pool SQL serverless uniquement)

Pour ajouter un élément de niveau supérieur unique à la sortie JSON de la clause FOR JSON , spécifiez l’option ROOT .

Si vous ne spécifiez pas l’option ROOT , la sortie JSON n’inclura pas d’élément racine.

Exemples

Le tableau ci-après présente la sortie de la clause FOR JSON avec et sans l’option ROOT .

Les exemples du tableau ci-dessous reposent sur l’hypothèse que l’argument RootName facultatif est vide. Si vous fournissez un nom pour l’élément racine, cette valeur remplace la valeur root dans les exemples.

Sans l’option ROOT

{  
   <<json properties>>  
}  
[  
   <<json array elements>>  
]  

Avec l’option ROOT

{   
  "root": {  
   <<json properties>>  
 }  
}  
{   
  "root": [  
   << json array elements >>  
  ]  
}  

Voici un autre exemple de clause FOR JSON avec l’option ROOT . Cet exemple spécifie une valeur pour l’argument RootName facultatif.

Requête

SELECT TOP 5   
       BusinessEntityID As Id,  
       FirstName, LastName,  
       Title As 'Info.Title',  
       MiddleName As 'Info.MiddleName'  
   FROM Person.Person  
   FOR JSON PATH, ROOT('info')

Résultat

{
    "info": [{
        "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.",
            "MiddleName": "A"
        }
    }]
}

Résultat (sans racine)

[{
    "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.",
        "MiddleName": "A"
    }
}]

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 :

Voir aussi

FOR, clause (Transact-SQL)