ROOT 옵션을 사용하여 JSON 출력에 루트 노드 추가(SQL Server)Add a Root Node to JSON Output with the ROOT Option (SQL Server)

이 항목 적용 대상: 예SQL Server예Azure SQL 데이터베이스없습니다Azure SQL 데이터 웨어하우스 없습니다 병렬 데이터 웨어하우스THIS TOPIC APPLIES TO: yesSQL ServeryesAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

단일 최상위 요소를 FOR JSON 절의 JSON 출력에 추가하려면 ROOT 옵션을 사용합니다.To add a single, top-level element to the JSON output of the FOR JSON clause, specify the ROOT option.

ROOT 옵션을 지정하지 않은 경우 JSON 출력에는 루트 요소가 포함되지 않습니다.If you don't specify the ROOT option, the JSON output doesn't include a root element.

Examples

다음 표에는 ROOT 옵션을 사용한 경우와 사용하지 않은 경우 FOR JSON 절의 출력이 나와 있습니다.The following table shows the output of the FOR JSON clause with and without the ROOT option.

다음 표의 예에서는 선택적 RootName 인수가 비어 있다고 가정합니다.The examples in the following table assume that the optional RootName argument is empty. 루트 요소의 이름을 입력하면 예의 root 값이 이 값으로 바뀝니다.If you provide a name for the root element, this value replaces the value root in the examples.

ROOT 옵션을 사용하지 않는 경우Without the ROOT option

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

ROOT 옵션을 사용하는 경우With the ROOT option

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

아래에는 ROOT 옵션을 사용한 FOR JSON 절의 다른 예가 나와 있습니다.Here's another example of a FOR JSON clause with the ROOT option. 이 예에서는 선택적 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')

결과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"
        }
    }]
}

결과(루트 없이)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"
    }
}]

SQL Server의 기본 제공 JSON 지원에 대한 자세한 정보Learn more about the built-in JSON support in SQL Server

많은 특정 솔루션, 사용 사례 및 권장 사항은 Microsoft 프로그램 관리자인 Jovan Popovic이 제공하는 SQL Server 및 Azure SQL Database의 기본 제공 JSON 지원에 대한 블로그 게시물을 참조하세요.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.

관련 항목:See Also

FOR 절(Transact-SQL)FOR Clause (Transact-SQL)