메인 콘텐츠로 건너뛰기

설명

이 포맷에서는 단일 JSON 객체를 하나의 JSON 값으로 해석합니다. 입력에 JSON 객체가 여러 개 있으면(쉼표로 구분) 각각을 별도의 행으로 해석합니다. 입력 데이터가 []로 둘러싸여 있으면 JSON 배열로 해석합니다. 이 포맷은 타입이 JSON인 단일 필드가 있는 테이블에서만 파싱할 수 있습니다. 나머지 컬럼은 DEFAULT 또는 MATERIALIZED로 설정되어 있어야 합니다.

사용 예시

기본 예시

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

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

기본값이 설정된 컬럼

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

포맷 설정

마지막 수정일 2026년 6월 10일