#JSON

json
JSON ( expr EXTENDED )

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"
pdf-btn 下载文档
copy-btn 复制链接