#JSON
JSON函数仅包含一个expr参数,返回根据该expr的值所转换而来的二进制json数据。其中,当转换后的json数据为JSON Object类型时,函数返回的是按key值进行排序后的结果。
expr的值必须为CHAR、VARCHAR或CLOB类型,否则函数返回Invalid datatype错误。函数最大支持32M字节的字符串数据作为输入。
当expr的值为NULL时,函数返回NULL。
JSON函数存在别名,为JSON_PARSE,其功能与JSON完全相同。
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"