적용 대상: SQL Server 2016(13.x) 이상 버전
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics(서버리스 SQL 풀에만 해당)
Microsoft Fabric의 SQL 분석 엔드포인트
Microsoft Fabric의 Warehouse
Microsoft Fabric Previews의 SQL 데이터베이스
이 문서에서는 SQL Server FOR JSON
문의 SELECT
절이 특수 문자를 이스케이프 처리하고 JSON 출력에서 제어 문자를 표시하는 방법에 대해 설명합니다.
이 문서에서는 Microsoft SQL Server의 JSON에 대한 기본 제공 지원에 대해 설명합니다. JSON의 이스케이프 및 인코딩에 대한 일반적인 내용은 JSON RFC의 섹션 2.5를 참조하세요.
특수 문자 이스케이프
원본 데이터에 특수 문자가 포함된 경우 FOR JSON
절은 다음 테이블과 같이 \
를 사용하여 JSON 출력에서 특수문자를 이스케이프합니다. 속성 이름과 값 모두 이스케이프 처리됩니다.
Special character | Escaped output |
---|---|
물음표(" ) |
\" |
백슬래시(\ ) |
\\ |
슬래시(/ ) |
\/ |
Backspace | \b |
Form feed | \f |
New line | \n |
Carriage return | \r |
Horizontal tab | \t |
Control characters
원본 데이터에 컨트롤 문자가 포함된 경우 FOR JSON
절은 다음 테이블과 같이 \u<code>
형식의 JSON 출력에 컨트롤 문자를 인코딩합니다.
Control character | Encoded output |
---|---|
CHAR(0) | \u0000 |
CHAR(1) | \u0001 |
... | ... |
CHAR(31) | \u001f |
Example
다음은 특수 문자와 컨트롤 문자를 모두 포함하는 원본 데이터에 대한 FOR JSON
출력의 예입니다.
Query:
SELECT 'VALUE\ /
"' AS [KEY\/"],
CHAR(0) AS '0',
CHAR(1) AS '1',
CHAR(31) AS '31'
FOR JSON PATH;
Result:
[
{
"KEY\\\/\"": "VALUE\\ \/\r\n \"",
"0": "\u0000",
"1": "\u0001",
"31": "\u001f"
}
]