将给定的复杂类型expr,以JSON字符串格式输出。

命令格式

string to_json(<expr>)

参数说明

expr:必填。

说明

如果输入为STRUCT类型(struct<key1:value1, key2:value2):

  • 转换为JSON字符串时,Key会全部转为小写。

  • value如果为NULL,则不输出value本组的数据。例如value2为NULL,则key2:value2不会输出到JSON字符串。

返回值说明

返回JSON格式的字符串。

使用示例

  • 示例1:将指定复杂类型以指定格式输出。命令示例如下。

    --返回{"a":1,"b":2}。
    select to_json(named_struct('a', 1, 'b', 2));
    --返回{"time":"26/08/2015"}。
    select to_json(named_struct('time', "26/08/2015"));
    --返回[{"a":1,"b":2}]。
    select to_json(array(named_struct('a', 1, 'b', 2)));
    --返回{"a":{"b":1}}。
    select to_json(map('a', named_struct('b', 1)));
    --返回{"a":1}。
    select to_json(map('a', 1));
    --返回[{"a":1}]。
    select to_json(array((map('a', 1))));
  • 示例2:输入为STRUCT类型的特殊情况。命令示例如下。

    --返回{"a":"B"}。STRUCT类型转换为JSON字符串时,key会全部转为小写。
    select to_json(named_struct("A", "B"));
    --返回{"k2":"v2"}。NULL值所在组的数据,不会输出到JSON字符串。
    select to_json(named_struct("k1", cast(null as string), "k2", "v2"));

相关函数

TO_JSON函数属于复杂类型函数或字符串函数。

  • 更多对复杂类型数据(例如ARRAY、MAP、STRUCT、JSON数据)的处理函数请参见复杂类型函数

  • 更多查找字符串、转换字符串格式的相关函数请参见字符串函数