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函數。