적용 대상:
Databricks SQL
Databricks Runtime
path에서 JSON 개체를 추출합니다.
팁 (조언)
새 코드의 경우 Azure Databricks VARIANT 데이터 형식을 : 연산자 사용하여 JSON 데이터를 쿼리하는 것이 좋습니다.
VARIANT 는 문자열 기반 JSON 구문 분석보다 더 나은 읽기 및 쓰기 성능, 대/소문자 구분 필드 액세스 및 보다 명확한 의미 체계를 제공합니다.
변형이 JSON 문자열과 어떻게 다른지 알아보세요.
구문
get_json_object(expr, path)
논쟁
-
expr: 잘 구성된 JSON이 포함된 STRING 식입니다. -
path: 에 루팅된$JSONPath 식을 포함하는 STRING 리터럴입니다. 지원되는 구문에 대한 참고 사항 및 일반적인 패턴 에 대한 예제 를 참조하세요.
반품
스트링입니다.
개체를 찾을 수 없으면 Null이 반환됩니다.
예제
-- Extract a top-level field
> SELECT get_json_object('{"a":"b"}', '$.a');
b
-- Extract a nested field
> SELECT get_json_object('{"a":{"b":"c"}}', '$.a.b');
c
-- Extract an array element by index
> SELECT get_json_object('{"items":["apple","pear"]}', '$.items[0]');
apple
-- Extract a field whose name contains a space
> SELECT get_json_object('{"first name":"Ada"}', '$["first name"]');
Ada
-- Extract a field whose name contains a dot, using bracket notation with double quotes
> SELECT get_json_object('{"ids":{"a.b":"42"}}', '$.ids["a.b"]');
42
-- Extract a field from every element of an array
> SELECT get_json_object('{"items":[{"n":1},{"n":2}]}', '$.items[*].n');
[1,2]
-- Returns NULL when the path does not match
> SELECT get_json_object('{"a":"b"}', '$.missing');
NULL
Notes
get_json_object 는 .에 $루팅된 JSONPath 구문을 사용합니다. 점 표기법(.field)에 의한 필드 액세스는 대/소문자를 구분하지 않습니다. 대괄호 표기법(['field'] 또는 ["field"])은 대/소문자를 구분합니다. 이는 Azure Databricks JSON 경로 식: 연산자와 함께 사용하여 별도로 문서화된 VARIANT 및 JSON 문자열을 쿼리하는 데 사용됩니다.