Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

JSONAsObject

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

Querysql
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;
Responseresponse
{"json":{"foo":{"bar":{"x":"y"},"baz":"1"}}}
{"json":{}}
{"json":{"any json stucture":"1"}}

Array de objetos JSON

Querysql
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;
Responseresponse
{"field":{"id":"1","name":"name1"}}
{"field":{"id":"2","name":"name2"}}

Colunas com valor padrão

Querysql
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
Responseresponse
{"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

Navigation