- 카테고리:
변환 함수 , 반정형 및 정형 데이터 함수 (캐스트)
TO_JSON¶
VARIANT 값을 값의 JSON 표현이 포함된 문자열로 변환합니다.
구문¶
인자¶
expr유효한 JSON 정보를 보유하는 VARIANT 형식의 식입니다.
반환¶
VARCHAR 형식의 값을 반환합니다.
입력값이 NULL인 경우 이 함수는 NULL을 반환합니다.
사용법 노트¶
입력이 NULL이면 출력도 NULL입니다. 입력이 JSON null 을 포함하는 VARIANT인 경우, 반환된 값은 문자열
"null"입니다(즉, 큰따옴표로 묶인 단어 “null”). 아래 예를 참조하십시오.JSON 오브젝트(“사전” 또는 “해시”라고도 함)는 순서가 지정되지 않은 키-값 페어의 세트입니다. TO_JSON 이 문자열을 생성할 때 해당 문자열의 키-값 페어의 순서는 예측할 수 없습니다.
TO_JSON 및 PARSE_JSON 은 (거의) 역 또는 상호 함수입니다.
PARSE_JSON 함수는 문자열을 입력값으로 받아 JSON 호환 VARIANT 를 반환합니다.
TO_JSON 함수는 JSON 호환 VARIANT를 받아 문자열을 반환합니다.
X가 유효한 JSON을 포함하는 문자열인 경우, 다음은 (개념적으로) true입니다.
X = TO_JSON(PARSE_JSON(X));예를 들어, 다음은 (개념적으로) true입니다.
'{"pi":3.14,"e":2.71}' = TO_JSON(PARSE_JSON('{"pi":3.14,"e":2.71}'))그러나 다음과 같은 이유로 이 함수는 완벽하게 상호적이지는 않습니다.
빈 문자열과 공백만 있는 문자열은 상호적으로 처리되지 않습니다. 예를 들어
PARSE_JSON('')의 반환 값은 NULL이지만,TO_JSON(NULL)의 반환 값은 상호적 역 관계의''가 아니라 NULL입니다.TO_JSON 에 의해 생성된 문자열의 키-값 페어의 순서는 예측할 수 없습니다.
TO_JSON 에 의해 생성된 문자열은 PARSE_JSON 에 전달된 문자열보다 공백이 적을 수 있습니다.
예를 들어 다음은 동등한 JSON이지만, 동등한 문자열은 아닙니다.
{"pi": 3.14, "e": 2.71}{"e":2.71,"pi":3.14}
예¶
다음 예제에서는 TO_JSON 함수를 사용합니다.
VARIANT 값 삽입 및 쿼리를 사용하여 이 값을 문자열로 변환하기¶
테이블을 만들고 채웁니다. INSERT 문에서는 PARSE_JSON 함수를 사용하여 테이블의 v 열에 VARIANT 값을 삽입합니다.
데이터를 쿼리하고 TO_JSON 함수를 사용하여 VARIANT 값을 문자열로 변환합니다.
PARSE_JSON 및 TO_JSON 함수로 NULL 값 처리하기¶
다음 예에서는 PARSE_JSON 및 TO_JSON이 NULL 값을 처리하는 방법을 보여줍니다.
PARSE_JSON과 TO_JSON 비교하기¶
다음 예에서는 PARSE_JSON 함수와 TO_JSON 함수 간의 관계를 보여줍니다.
이 예에서는 VARCHAR 열과 VARIANT 열이 있는 테이블을 만듭니다. INSERT 문은 VARCHAR 값을 삽입하고, UPDATE 문은 그 VARCHAR 값에 상응하는 JSON 값을 생성합니다.
이 쿼리는 TO_JSON 및 PARSE_JSON 이 개념적으로 상호 함수임을 보여줍니다.
하지만 이들 함수가 정확히 상호 역 관계는 아닙니다. 공백 또는 키-값 페어의 순서 차이로 인해 출력이 입력과 일치하지 않을 수 있습니다. 예: