Перейти к основному содержанию
Перейти к основному содержанию

JSONAsString

ВходВыходПсевдоним

Описание

В этом формате один JSON-объект интерпретируется как одно значение. Если на вход передано несколько JSON-объектов (разделённых запятыми), они интерпретируются как отдельные строки. Если входные данные заключены в квадратные скобки, они интерпретируются как массив JSON-объектов.

Примечание

Этот формат может быть разобран только для таблицы с одним полем типа String. Остальные столбцы должны быть заданы с помощью DEFAULT или MATERIALIZED, либо опущены.

После того как вы сериализуете весь JSON-объект в значение типа String, вы можете использовать JSON-функции для его обработки.

Пример использования

Простой пример

DROP TABLE IF EXISTS json_as_string;
CREATE TABLE json_as_string (json String) ENGINE = Memory;
INSERT INTO json_as_string (json) FORMAT JSONAsString {"foo":{"bar":{"x":"y"},"baz":1}},{},{"any json stucture":1}
SELECT * FROM json_as_string;
┌─json──────────────────────────────┐
│ {"foo":{"bar":{"x":"y"},"baz":1}} │
│ {}                                │
│ {"any json stucture":1}           │
└───────────────────────────────────┘

Массив объектов JSON

CREATE TABLE json_square_brackets (field String) ENGINE = Memory;
INSERT INTO json_square_brackets FORMAT JSONAsString [{"id": 1, "name": "name1"}, {"id": 2, "name": "name2"}];

SELECT * FROM json_square_brackets;
┌─field──────────────────────┐
│ {"id": 1, "name": "name1"} │
│ {"id": 2, "name": "name2"} │
└────────────────────────────┘

Параметры форматирования