PATH 모드로 중첩 JSON 출력 형식 지정
적용 대상: SQL Server 2016(13.x) 이상 버전
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics(서버리스 SQL 풀에만 해당)
Microsoft Fabric
Warehouse의 SQL 분석 엔드포인트
FOR JSON
절의 출력을 완전히 제어하려면 PATH
옵션을 지정합니다.
PATH
모드를 사용하면 래퍼 객체를 만들고 복합 속성을 중첩할 수 있습니다. 결과는 JSON 개체의 배열로 서식 지정됩니다.
대안은 AUTO
옵션을 사용하여 SELECT
문의 구조에 따라 출력의 서식을 자동으로 지정하는 것입니다.
-
AUTO
옵션에 대한 자세한 내용은 AUTO 모드 를 사용하여 JSON 출력 서식을 자동으로 설정하는 방법을 참조하세요. - 두 옵션에 대한 개요는 "FOR JSON"을 사용한 쿼리 결과를JSON으로 서식 지정하기를 참조하세요.
다음은 FOR JSON
절의 PATH
옵션이 있는 몇 가지 예입니다. 다음 예제와 같이 점으로 구분된 열 이름을 사용하거나 중첩된 쿼리를 사용하여 중첩된 결과의 서식을 지정합니다. 기본적으로 null 값은 FOR JSON
출력에 포함되지 않습니다.
Azure Data Studio는 일반 문자열을 표시하는 대신 이 문서에 표시된 대로 JSON 결과에 서식을 자동으로 지정하므로 JSON 쿼리에 권장되는 쿼리 편집기입니다.
예 - 점으로 구분된 열 이름
다음 쿼리는 AdventureWorks Person
테이블의 처음 5개 행에 JSON 형식을 지정합니다.
FOR JSON PATH
절은 열 별칭 또는 열 이름을 사용하여 JSON 출력에서 키 이름을 확인합니다. 별칭에 점이 포함된 경우 PATH
옵션은 중첩된 개체를 만듭니다.
쿼리
SELECT TOP 5
BusinessEntityID As Id,
FirstName, LastName,
Title As 'Info.Title',
MiddleName As 'Info.MiddleName'
FROM Person.Person
FOR JSON PATH
결과
[{
"Id": 1,
"FirstName": "Ken",
"LastName": "Sanchez",
"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"
}
}]
예 - 여러 테이블
쿼리에서 둘 이상의 테이블을 참조하는 경우 FOR JSON PATH
별칭을 사용하여 각 열을 중첩합니다. 다음 쿼리는 쿼리에 조인된 (OrderHeader, OrderDetails
) 쌍당 하나의 JSON 개체를 만듭니다.
쿼리
SELECT TOP 2 H.SalesOrderNumber AS 'Order.Number',
H.OrderDate AS 'Order.Date',
D.UnitPrice AS 'Product.Price',
D.OrderQty AS 'Product.Quantity'
FROM Sales.SalesOrderHeader H
INNER JOIN Sales.SalesOrderDetail D
ON H.SalesOrderID = D.SalesOrderID
FOR JSON PATH
결과
[{
"Order": {
"Number": "SO43659",
"Date": "2011-05-31T00:00:00"
},
"Product": {
"Price": 2024.9940,
"Quantity": 1
}
}, {
"Order": {
"Number": "SO43659"
},
"Product": {
"Price": 2024.9940
}
}]
SQL Database 엔진의 JSON에 대해 자세히 알아보기
SQL Server 및 Azure SQL 데이터베이스에서 기본 제공 JSON 지원에 대한 시각적 소개는 다음 비디오를 참조하세요.