Saltar al contenido principal

Descripción

En este formato, un único objeto JSON se interpreta como un único valor JSON. Si la entrada contiene varios objetos JSON (separados por comas), se interpretan como filas distintas. Si los datos de entrada están entre [], se interpretan como un array de JSON. Este formato solo puede analizarse en una tabla con un único campo de tipo JSON. Las columnas restantes deben establecerse como DEFAULT o MATERIALIZED.

Ejemplo de uso

Ejemplo básico

Query
CREATE TABLE json_as_object (json JSON) ENGINE = Memory;
INSERT INTO json_as_object (json) FORMAT JSONAsObject {"foo":{"bar":{"x":"y"},"baz":1}},{},{"any json stucture":1}
SELECT * FROM json_as_object FORMAT JSONEachRow;
Response
{"json":{"foo":{"bar":{"x":"y"},"baz":"1"}}}
{"json":{}}
{"json":{"any json stucture":"1"}}

Un array de objetos JSON

Query
CREATE TABLE json_square_brackets (field JSON) ENGINE = Memory;
INSERT INTO json_square_brackets FORMAT JSONAsObject [{"id": 1, "name": "name1"}, {"id": 2, "name": "name2"}];
SELECT * FROM json_square_brackets FORMAT JSONEachRow;
Response
{"field":{"id":"1","name":"name1"}}
{"field":{"id":"2","name":"name2"}}

Columnas con valores por defecto

Query
CREATE TABLE json_as_object (json JSON, time DateTime MATERIALIZED now()) ENGINE = Memory;
INSERT INTO json_as_object (json) FORMAT JSONAsObject {"foo":{"bar":{"x":"y"},"baz":1}};
INSERT INTO json_as_object (json) FORMAT JSONAsObject {};
INSERT INTO json_as_object (json) FORMAT JSONAsObject {"any json stucture":1}
SELECT time, json FROM json_as_object FORMAT JSONEachRow
Response
{"time":"2024-09-16 12:18:10","json":{}}
{"time":"2024-09-16 12:18:13","json":{"any json stucture":"1"}}
{"time":"2024-09-16 12:18:08","json":{"foo":{"bar":{"x":"y"},"baz":"1"}}}

Ajustes de formato

Última modificación el 10 de junio de 2026