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 バイト |
戻り値
引用符が削除された JSON データを STRING 型として返します。次のルールが適用されます:
json の値が NULL の場合、この関数は NULL を返します。
json データが二重引用符で始まり、二重引用符で終わるものの、有効な JSON 文字列リテラルではない場合、エラーが報告されます。
例
例 1: JSON_EXTRACT 関数を使用して指定された 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 関数」をご参照ください。