Condividi tramite


Aggiungere un nodo radice all'output JSON con l'opzione ROOT

Si applica a: SQL Server 2016 (13.x) e versioni successive Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics (solo pool SQL senza server)Endpoint di analisi SQL in Microsoft FabricMagazzino in Microsoft FabricDatabase SQL in Microsoft Fabric

Per aggiungere un singolo elemento di primo livello all'output JSON della clausola FOR JSON, specificare l'opzione ROOT.

Se non si specifica l'opzione ROOT, l'output JSON non include un elemento radice.

Examples

Nella tabella seguente viene illustrato l'output della clausola FOR JSON con e senza l'opzione ROOT.

Gli esempi nella tabella seguente presuppongono che l'argomento facoltativo RootName sia vuoto. Se si specifica un nome per l'elemento radice, questo valore sostituisce il valore root negli esempi.

Senza l'opzione ROOT:

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

Con l'opzione ROOT:

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

Ecco un altro esempio di clausola FOR JSON con l'opzione ROOT. In questo esempio viene specificato un valore per l'argomento facoltativo RootName.

Query

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

Result

{
    "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)

[{
    "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 su JSON nel motore di database SQL

Per un'introduzione visiva al supporto JSON predefinito, vedere i video seguenti: