다음을 통해 공유


FOR JSON이 특수 문자 및 제어 문자를 이스케이프 처리하는 방법

적용 대상: SQL Server 2016(13.x) 이상 버전 Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics(서버리스 SQL 풀에만 해당) Microsoft Fabric의 SQL 분석 엔드포인트Microsoft Fabric의 WarehouseMicrosoft 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"
    }
]