跳至主要内容
跳至主要内容

JSON

输入输出别名

描述

JSON 格式读取和输出 JSON 格式的数据。

JSON 格式返回以下内容

参数描述
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_metadata1,则输入数据中的元数据类型将与表中的相应列的类型进行比较。

另请参阅

    © . This site is unofficial and not affiliated with ClickHouse, Inc.