Функция get_json_object

Относится к:отмечено Databricks SQL отмечено Databricks Runtime

Извлекает объект JSON из path.

Подсказка

Для нового кода Azure Databricks рекомендует использовать тип данных VARIANT с< оператором /c2> для запроса данных JSON. VARIANT обеспечивает более высокую производительность чтения и записи, доступ к полям с учетом регистра и более четкую семантику, чем анализ JSON на основе строк. Узнайте, как вариант отличается от строк JSON?

Синтаксис

get_json_object(expr, path)

Аргументы

  • expr: строковое выражение, содержащее правильно сформированный JSON.
  • path: строковый литерал, содержащий выражение JSONPath, корневое значение $. См . заметки о поддерживаемых синтаксисах и примерах распространенных шаблонов.

Возвраты

строка.

Если объект не может быть найден, возвращается значение 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

Примечания

get_json_object использует синтаксис JSONPath, корневой в $. Доступ к полям по нотации точек (.field) не учитывает регистр; нотация скобки (['field'] или ["field"]) учитывает регистр. Это отличается от выражения пути Azure Databricks JSON, используемого с< оператором /c2> для запроса строк и JSON, которые документируются отдельно.