카테고리:

반정형 및 정형 데이터 함수 (구문 분석)

TRY_PARSE_JSON

구문 분석 중 오류가 발생하면 NULL 값을 반환하는 PARSE_JSON 의 특수 버전입니다.

구문

TRY_PARSE_JSON( <expr> [ , '<parameter>' ] )
Copy

인자

필수:

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 ');
Copy

TRY_PARSE_JSON 을 사용하여 데이터를 쿼리합니다. 세 번째 줄의 값은 NULL입니다. 쿼리가 TRY_PARSE_JSON 대신 PARSE_JSON 을 사용하면 실패하게 됩니다.

SELECT ID, TRY_PARSE_JSON(v)
  FROM vartab
  ORDER BY ID;
Copy
+----+-------------------+
| ID | TRY_PARSE_JSON(V) |
|----+-------------------|
|  1 | [                 |
|    |   -1,             |
|    |   12,             |
|    |   289,            |
|    |   2188,           |
|    |   false,          |
|    |   undefined       |
|    | ]                 |
|  2 | {                 |
|    |   "x": "abc",     |
|    |   "y": false,     |
|    |   "z": 10         |
|    | }                 |
|  3 | NULL              |
+----+-------------------+

자세한 예제는 PARSE_JSON 섹션을 참조하십시오.