#JSON
JSON函数用于将expr的值转换为二进制JSON数据。当转换后的JSON数据为JSON Object类型时,函数返回按key值进行排序后的结果。
本函数存在别名JSON_PARSE,其功能与JSON完全相同。
expr
通用表达式,其值须为CHAR、VARCHAR或CLOB类型数据。
在向量化执行引擎中,expr不能为LOB类型的行外存储数据。
expr不能为超过32000字节的VARCHAR、LOB类型数据。
当expr的值为NULL时,函数返回NULL。
EXTENDED
EXTENDED关键字用于指定使用扩展模式解析JSON字符串,详情请查阅JSON扩展格式解析。
示例
SELECT JSON_FORMAT(JSON('[123, "ABC", false]')) yason_res FROM DUAL;
YASON_RES
----------------------------------------------------------------
[123,"ABC",false]
-- JSON Object类型会进行key值排序
SELECT JSON_FORMAT(JSON('{"keyC":123, "keyabc":false, "keyA":234, "keyB":345, "key":true}') pretty) yason_res FROM DUAL;
YASON_RES
----------------------------------------------------------------
{
"key" : true,
"keyA" : 234,
"keyB" : 345,
"keyC" : 123,
"keyabc" : false
}
-- 通过扩展模式解析JSON字符串
SELECT JSON('{"$binary": "SGVsbG8gd29ybGQh"}' EXTENDED) yason_res FROM DUAL;
YASON_RES
----------------------------------------------------------------
"48656C6C6F20776F726C6421"