JSONAsString
输入 | 输出 | 别名 |
---|---|---|
✔ | ✗ |
描述
在这种格式中,单个 JSON 对象被解释为单个值。如果输入有多个 JSON 对象(以逗号分隔),它们将被解释为单独的行。如果输入数据包含在方括号中,则它被解释为 JSON 对象数组。
注意
此格式只能为具有类型为 String 的单字段表解析。其余列必须设置为 DEFAULT
或 MATERIALIZED
,或者被省略。
一旦将整个 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"} │
└────────────────────────────┘