Aggiungere un nodo radice all'output JSON con l'opzione ROOT (SQL Server)Add a Root Node to JSON Output with the ROOT Option (SQL Server)

QUESTO ARGOMENTO SI APPLICA A: sìSQL Server (a partire dalla versione 2016)sìDatabase SQL di AzurenoAzure SQL Data Warehouse noParallel Data Warehouse THIS TOPIC APPLIES TO: yesSQL Server (starting with 2016)yesAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Per aggiungere un unico elemento di primo livello all'output JSON della clausola FOR JSON , specificare l'opzione ROOT .To add a single, top-level element to the JSON output of the FOR JSON clause, specify the ROOT option.

Se non si specifica l'opzione ROOT , l'output JSON non includerà alcun elemento radice.If you don't specify the ROOT option, the JSON output doesn't include a root element.

EsempiExamples

La tabella seguente mostra l'output della clausola FOR JSON con e senza l'opzione ROOT .The following table shows the output of the FOR JSON clause with and without the ROOT option.

Gli esempi nella tabella seguente presuppongono che l'argomento facoltativo RootName sia vuoto.The examples in the following table assume that the optional RootName argument is empty. Se si specifica un nome per l'elemento radice, questo valore sostituirà il valore root negli esempi.If you provide a name for the root element, this value replaces the value root in the examples.

Senza l'opzione ROOTWithout the ROOT option

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

Con l'opzione ROOTWith the ROOT option

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

Ecco un altro esempio di clausola FOR JSON con l'opzione ROOT .Here's another example of a FOR JSON clause with the ROOT option. Questo esempio specifica un valore per l'argomento facoltativo RootName .This example specifies a value for the optional RootName argument.

QueryQuery

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

RisultatoResult

{
    "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"
        }
    }]
}

Risultato (senza radice)Result (without root)

[{
    "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"
    }
}]

Altre informazioni sul supporto JSON integrato in SQL ServerLearn more about the built-in JSON support in SQL Server

Per soluzioni specifiche, casi d'uso e indicazioni, vedere i post del blog sul supporto JSON integrato in SQL Server e nel database SQL di Azure redatti da Jovan Popovic, Microsoft Program Manager.For lots of specific solutions, use cases, and recommendations, see the blog posts about the built-in JSON support in SQL Server and in Azure SQL Database by Microsoft Program Manager Jovan Popovic.

Vedere ancheSee Also

Clausola FOR (Transact-SQL)FOR Clause (Transact-SQL)