将给定的复杂类型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函数属于复杂类型函数或字符串函数。