JSONAsObject 형식

JSONAsObject 형식

JSONAsObject 형식은 단일 JSON 객체를 하나의 JSON 값으로 해석해요. 입력에 여러 JSON 객체가 있으면(쉼표로 구분) 각각 별도의 행으로 해석되며, 입력이 []로 감싸져 있으면 JSON 배열로 해석됩니다. 이 형식은 JSON 타입의 단일 필드를 가진 테이블에서만 파싱할 수 있고, 나머지 컬럼은 DEFAULT 또는 MATERIALIZED로 설정해야 해요.

출처: 문서

본문

설명 (Description)

이 형식에서는 단일 JSON 객체가 하나의 JSON 값으로 해석됩니다. 입력에 여러 JSON 객체(쉼표로 구분)가 있으면 각각 별도의 행으로 해석되고, 입력 데이터가 []로 감싸져 있으면 JSON 배열로 해석됩니다.

이 형식은 JSON 타입의 단일 필드를 가진 테이블에서만 파싱할 수 있습니다. 나머지 컬럼은 DEFAULT 또는 MATERIALIZED로 설정해야 합니다.

사용 예시 (Example usage)

기본 예시 (Basic example)

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 객체 배열 (An array of JSON objects)

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

기본값을 가진 컬럼 (Columns with default values)

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

형식 설정 (Format settings)

더 알아보기 (Learn more)