- 카테고리:
반정형 및 정형 데이터 함수 (구문 분석)
TRY_PARSE_JSON¶
구문 분석 중 오류가 발생하면 NULL 값을 반환하는 PARSE_JSON 의 특수 버전입니다.
구문¶
TRY_PARSE_JSON( <expr> [ , '<parameter>' ] )
인자¶
필수:
expr
유효한 JSON 정보를 보유하는 문자열 형식(예: VARCHAR)의 식입니다.
선택 사항:
'parameter'
일치 항목을 검색하는 데 사용되는 매개 변수를 지정하는 문자열 상수입니다. 지원되는 값:
매개 변수
설명
d
JSON 오브젝트에서 중복 키 허용. JSON 오브젝트에 중복 키가 포함된 경우 반환된 오브젝트에는 해당 키에 대해 지정된 마지막 값을 가진 해당 키의 단일 인스턴스가 있습니다.
s
JSON 오브젝트에서 중복 키 허용 안 함(엄격). 이 값이 기본값입니다.
반환¶
JSON 문서를 포함하는 VARIANT 타입의 값을 반환합니다.
입력이 NULL 이거나 구문 분석 중에 오류가 발생하면 함수는 NULL 을 반환합니다.
이 함수는 정형 유형 을 반환하지 않습니다.
사용법 노트¶
사용법 노트는 PARSE_JSON 섹션을 참조하십시오.
예¶
다음은 JSON으로 구문 분석할 수 있는 값이 포함된 문자열을 구문 분석하기 위해 TRY_PARSE_JSON 을 호출하여 VARIANT 열에 다양한 형식의 데이터를 저장하는 예를 보여줍니다.
테이블을 만들고 채웁니다.
CREATE OR REPLACE TEMPORARY TABLE vartab (ID INTEGER, v VARCHAR);
INSERT INTO vartab (id, v) VALUES
(1, '[-1, 12, 289, 2188, FALSE,]'),
(2, '{ "x" : "abc", "y" : FALSE, "z": 10} '),
(3, '{ "bad" : "json", "missing" : TRUE, "close_brace": 10 ');
TRY_PARSE_JSON 을 사용하여 데이터를 쿼리합니다. 세 번째 줄의 값은 NULL입니다. 쿼리가 TRY_PARSE_JSON 대신 PARSE_JSON 을 사용하면 실패하게 됩니다.
SELECT ID, TRY_PARSE_JSON(v)
FROM vartab
ORDER BY ID;
+----+-------------------+
| ID | TRY_PARSE_JSON(V) |
|----+-------------------|
| 1 | [ |
| | -1, |
| | 12, |
| | 289, |
| | 2188, |
| | false, |
| | undefined |
| | ] |
| 2 | { |
| | "x": "abc", |
| | "y": false, |
| | "z": 10 |
| | } |
| 3 | NULL |
+----+-------------------+
자세한 예제는 PARSE_JSON 섹션을 참조하십시오.