Udostępnij za pośrednictwem


Dodawanie węzła głównego do wyjścia JSON przy użyciu opcji ROOT

Dotyczy: SQL Server 2016 (13.x) i nowsze wersje Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics (tylko bezserwerowa pula SQL)punktu końcowego analizy SQL w usłudze Microsoft FabricWarehouse w usłudze Microsoft Fabric

Aby dodać pojedynczy element najwyższego poziomu do danych wyjściowych JSON klauzuli FOR JSON, określ opcję ROOT.

Jeśli nie określisz opcji ROOT, dane wyjściowe JSON nie zawierają elementu głównego.

Przykłady

W poniższej tabeli przedstawiono dane wyjściowe klauzuli FOR JSON z opcją i bez ROOT.

W przykładach w poniższej tabeli przyjęto założenie, że opcjonalny argument RootName jest pusty. Jeśli podasz nazwę elementu głównego, ta wartość zastępuje wartość root w przykładach.

bez opcji ROOT:

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

z opcją ROOT:

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

Oto kolejny przykład klauzuli FOR JSON z opcją ROOT. W tym przykładzie określono wartość opcjonalnego argumentu RootName.

Zapytanie

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

wynik

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

wynik (bez roota)

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

Dowiedz się więcej o JSON w silniku bazy danych SQL

Aby zapoznać się z wizualnym wprowadzeniem do wbudowanej obsługi kodu JSON, zobacz następujące wideo: