mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-22 07:31:57 +00:00
Merge pull request #29548 from ka1bi4/romanzhukov-DOCSUP-13988-JSONAsString-brackets
DOCSUP-13988: Allow data in square brackets in JSONAsString format
This commit is contained in:
commit
269a58373a
@ -515,11 +515,11 @@ Example:
|
||||
|
||||
## JSONAsString {#jsonasstring}
|
||||
|
||||
In this format, a single JSON object is interpreted as a single value. If the input has several JSON objects (comma separated) they will be interpreted as separate rows.
|
||||
In this format, a single JSON object is interpreted as a single value. If the input has several JSON objects (comma separated), they are interpreted as separate rows. If the input data is enclosed in square brackets, it is interpreted as an array of JSONs.
|
||||
|
||||
This format can only be parsed for table with a single field of type [String](../sql-reference/data-types/string.md). The remaining columns must be set to [DEFAULT](../sql-reference/statements/create/table.md#default) or [MATERIALIZED](../sql-reference/statements/create/table.md#materialized), or omitted. Once you collect whole JSON object to string you can use [JSON functions](../sql-reference/functions/json-functions.md) to process it.
|
||||
|
||||
**Example**
|
||||
**Examples**
|
||||
|
||||
Query:
|
||||
|
||||
@ -540,6 +540,26 @@ Result:
|
||||
└───────────────────────────────────┘
|
||||
```
|
||||
|
||||
**An array of JSON objects**
|
||||
|
||||
Query:
|
||||
|
||||
``` sql
|
||||
CREATE TABLE json_square_brackets (field String) ENGINE = Memory;
|
||||
INSERT INTO json_square_brackets FORMAT JSONAsString [{"id": 1, "name": "name1"}, {"id": 2, "name": "name2"}];
|
||||
|
||||
SELECT * FROM json_square_brackets;
|
||||
```
|
||||
|
||||
Result:
|
||||
|
||||
```text
|
||||
┌─field──────────────────────┐
|
||||
│ {"id": 1, "name": "name1"} │
|
||||
│ {"id": 2, "name": "name2"} │
|
||||
└────────────────────────────┘
|
||||
```
|
||||
|
||||
## JSONCompact {#jsoncompact}
|
||||
## JSONCompactStrings {#jsoncompactstrings}
|
||||
|
||||
|
@ -493,7 +493,7 @@ ClickHouse поддерживает [NULL](../sql-reference/syntax.md), кото
|
||||
|
||||
## JSONAsString {#jsonasstring}
|
||||
|
||||
В этом формате один объект JSON интерпретируется как одно строковое значение. Если входные данные имеют несколько объектов JSON, разделенных запятой, то они будут интерпретироваться как отдельные строки таблицы.
|
||||
В этом формате один объект JSON интерпретируется как одно строковое значение. Если входные данные имеют несколько объектов JSON, разделенных запятой, то они интерпретируются как отдельные строки таблицы. Если входные данные заключены в квадратные скобки, они интерпретируются как массив JSON-объектов.
|
||||
|
||||
В этом формате парситься может только таблица с единственным полем типа [String](../sql-reference/data-types/string.md). Остальные столбцы должны быть заданы как `DEFAULT` или `MATERIALIZED`(смотрите раздел [Значения по умолчанию](../sql-reference/statements/create/table.md#create-default-values)), либо отсутствовать. Для дальнейшей обработки объекта JSON, представленного в строке, вы можете использовать [функции для работы с JSON](../sql-reference/functions/json-functions.md).
|
||||
|
||||
@ -518,6 +518,28 @@ SELECT * FROM json_as_string;
|
||||
└───────────────────────────────────┘
|
||||
```
|
||||
|
||||
**Пример с массивом объектов JSON**
|
||||
|
||||
Запрос:
|
||||
|
||||
``` sql
|
||||
DROP TABLE IF EXISTS json_square_brackets;
|
||||
CREATE TABLE json_square_brackets (field String) ENGINE = Memory;
|
||||
INSERT INTO json_square_brackets FORMAT JSONAsString [{"id": 1, "name": "name1"}, {"id": 2, "name": "name2"}];
|
||||
|
||||
SELECT * FROM json_square_brackets;
|
||||
```
|
||||
|
||||
Результат:
|
||||
|
||||
```text
|
||||
┌─field──────────────────────┐
|
||||
│ {"id": 1, "name": "name1"} │
|
||||
│ {"id": 2, "name": "name2"} │
|
||||
└────────────────────────────┘
|
||||
```
|
||||
|
||||
|
||||
## JSONCompact {#jsoncompact}
|
||||
## JSONCompactStrings {#jsoncompactstrings}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user