跳转到主要内容
输入输出别名

描述

JSON 格式以 JSON 格式读取和输出数据。 JSON 格式会返回以下内容:
ParameterDescription
meta列名和类型。
data数据。
rows输出的总行数。
rows_before_limit_at_least如果不使用 LIMIT,本应返回的行数下限估计值。仅当查询包含 LIMIT 时才会输出。该估计值基于查询管道中在 limit transform 之前处理的数据块计算得出,但这些数据块之后也可能被 limit transform 丢弃。如果这些数据块甚至还未到达查询管道中的 limit transform,则不会计入估计。
statistics统计信息,例如 elapsedrows_readbytes_read
totals总计值 (使用 WITH TOTALS 时) 。
extremes极值 (当 extremes 设置为 1 时) 。
JSON 类型与 JavaScript 兼容。为确保这一点,某些字符会额外进行转义:
  • 斜杠 / 会被转义为 \/
  • 会导致某些浏览器出错的替代换行符 U+2028U+2029 会被转义为 \uXXXX
  • ASCII 控制字符会被转义:退格、换页、换行、回车和水平制表符分别替换为 \b\f\n\r\t,00-1F 范围内其余字节则使用 \uXXXX 序列表示。
  • 无效的 UTF-8 序列会被替换为替代字符 �,因此输出文本将仅包含有效的 UTF-8 序列。
为兼容 JavaScript,Int64 和 UInt64 整数默认会用双引号括起来。 如果要去掉引号,可以将配置参数 output_format_json_quote_64bit_integers 设置为 0 ClickHouse 支持 NULL,在 JSON 输出中显示为 null。要在输出中启用 +nan-nan+inf-inf 值,请将 output_format_json_quote_denormals 设置为 1

示例用法

示例:
SELECT SearchPhrase, count() AS c FROM test.hits GROUP BY SearchPhrase WITH TOTALS ORDER BY c DESC LIMIT 5 FORMAT JSON
{
        "meta":
        [
                {
                        "name": "num",
                        "type": "Int32"
                },
                {
                        "name": "str",
                        "type": "String"
                },
                {
                        "name": "arr",
                        "type": "Array(UInt8)"
                }
        ],

        "data":
        [
                {
                        "num": 42,
                        "str": "hello",
                        "arr": [0,1]
                },
                {
                        "num": 43,
                        "str": "hello",
                        "arr": [0,1,2]
                },
                {
                        "num": 44,
                        "str": "hello",
                        "arr": [0,1,2,3]
                }
        ],

        "rows": 3,

        "rows_before_limit_at_least": 3,

        "statistics":
        {
                "elapsed": 0.001137687,
                "rows_read": 3,
                "bytes_read": 24
        }
}

格式设置

对于 JSON 输入格式,如果将设置 input_format_json_validate_types_from_metadata 设为 1, 则会将输入数据元数据中的类型与表中对应列的类型进行比对。

另请参阅

最后修改于 2026年6月10日