ClickHouse supports a wide range of data formats for input and output. There are multiple JSON variations among them, but the most commonly used for data ingestion is JSONEachRow. It expects one JSON object per row, each object separated by a newline.
Examples
Using HTTP interface:
$ echo '{"foo":"bar"}' | curl 'http://localhost:8123/?query=INSERT%20INTO%20test%20FORMAT%20JSONEachRow' --data-binary @-Using clickhouse-client:
$ echo '{"foo":"bar"}' | clickhouse-client --query="INSERT INTO test FORMAT JSONEachRow"Instead of inserting data manually, you might consider to use an integration tool instead.
Useful settings
input_format_skip_unknown_fieldsallows to insert JSON even if there were additional fields not present in table schema (by discarding them).input_format_import_nested_jsonallows to insert nested JSON objects into columns of Nested type.