JSON_UNQUOTE函数用于去掉JSON数据中的引号。
命令格式
STRING JSON_UNQUOTE(JSON <json>)
-- 标准示例。
-- 返回123。
SELECT JSON_UNQUOTE(JSON "123");参数说明
json:必填。待去除引号的JSON数据。JSON类型。
注意:在json数据中包含的如下转义序列将被识别,对于所有其他转义序列,会导致JSON解析失败。
转义序列 | 序列表示的字符 |
" | 双引号 " |
\b | 退格字符 |
\f | 换页符 |
\n | 换行符 |
\r | 回车符 |
\t | 制表符 |
\ | 反斜杠 \ |
\uxxxx | Unicode 值 XXXX 的 UTF-8 字节 |
返回值说明
返回STRING类型不带引号的JSON数据。返回规则如下:
若json值为NULL,返回 NULL。
若json数据以双引号开始和结束,但不是有效的JSON字符串字面量,返回报错。
使用示例
示例1:使用JSON_EXTRACT函数提取JSON数据中指定JSON路径下的数据,然后使用JSON_UNQUOTE函数去除结果中的双引号。
-- 返回New York。 SELECT JSON_UNQUOTE(JSON_EXTRACT(json '{"name": "John", "age": 25, "city": "New York"}','$.city'));示例2:识别JSON数据中包含的转义序列,并去除结果中的双引号。
SELECT JSON_UNQUOTE(json "123"); +-----+ | _c0 | +-----+ | 123 | +-----+ SELECT JSON_UNQUOTE(JSON '"te\\rst"'); -- +-----+ | _c0 | +-----+ | te st | +-----+ SELECT JSON_UNQUOTE(JSON '"\\ttest"'); -- +-----+ | _c0 | +-----+ | test | +-----+ SELECT JSON_UNQUOTE(JSON '"te\\nst"'); -- +-----+ | _c0 | +-----+ | te st | +-----+ SELECT JSON_UNQUOTE(JSON '"te\\bst"'); -- +-----+ | _c0 | +-----+ | tst | +-----+ SELECT JSON_UNQUOTE(JSON '"\\u03A9"'); +-----+ | _c0 | +-----+ | Ω | +-----+
相关函数
JSON_UNQUOTE函数属于JSON函数,更多JSON类型函数请参见JSON函数。
该文章对您有帮助吗?