Pular para o conteúdo principal

Descrição

Nesse formato, um único objeto JSON é interpretado como um único valor JSON. Se a entrada tiver vários objetos JSON (separados por vírgula), eles serão interpretados como linhas distintas. Se os dados de entrada estiverem entre [], serão interpretados como um array de objetos JSON. Esse formato só pode ser interpretado para uma tabela com um único campo do tipo JSON. As colunas restantes devem ser definidas como DEFAULT ou MATERIALIZED.

Exemplo de uso

Exemplo 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"}}

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"}}

Colunas com valor padrão

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"}}}

Configurações de formato

Última modificação em 10 de junho de 2026