跳到主要内容
跳到主要内容

JSONAsString

输入输出别名

描述

在这种格式中,单个 JSON 对象被解释为单个值。如果输入有多个 JSON 对象(以逗号分隔),它们将被解释为单独的行。如果输入数据包含在方括号中,则它被解释为 JSON 对象数组。

注意

此格式只能为具有类型为 String 的单字段表解析。其余列必须设置为 DEFAULTMATERIALIZED,或者被省略。

一旦将整个 JSON 对象序列化为 String,您可以使用 JSON 函数 来处理它。

用法示例

基本示例

查询
DROP TABLE IF EXISTS json_as_string;
CREATE TABLE json_as_string (json String) ENGINE = Memory;
INSERT INTO json_as_string (json) FORMAT JSONAsString {"foo":{"bar":{"x":"y"},"baz":1}},{},{"any json stucture":1}
SELECT * FROM json_as_string;
响应
┌─json──────────────────────────────┐
│ {"foo":{"bar":{"x":"y"},"baz":1}} │
│ {} │
│ {"any json stucture":1} │
└───────────────────────────────────┘

JSON 对象数组

查询
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;
响应
┌─field──────────────────────┐
│ {"id": 1, "name": "name1"} │
│ {"id": 2, "name": "name2"} │
└────────────────────────────┘

格式设置