に最終更新
JSON_QUOTE
説明
入力文字列を二重引用符で囲み、その中の特殊文字と制御文字をエスケープします。主に、文字列を有効な JSON 文字列へ変換するために使用します。
特殊文字は次のとおりです。
- 二重引用符 (
") - バックスラッシュ (
\) - バックスペース (
\b) - 改行 (
\n) - キャリッジリターン (
\r) - 水平タブ (
\t)
制御文字の例:
CHAR(0)は\u0000にエスケープされます。
構文
JSON_QUOTE (<str>)
パラメータ
<str>: 二重引用符で囲む文字列型の値です。
戻り値
二重引用符で囲まれた文字列を返します。
使用上の注意
- パラメータが NULL の場合は NULL を返します。
- パラメータにエスケープ記号 (
\) とエスケープ対象ではない文字が続く場合、その記号は削除されます。例 4 と 5 を参照してください。
例
-
二重引用符をエスケープする
select json_quote('I am a "string" that contains double quotes.');+------------------------------------------------------------+
| json_quote('I am a "string" that contains double quotes.') |
+------------------------------------------------------------+
| "I am a \"string\" that contains double quotes." |
+------------------------------------------------------------+ -
特殊文字をエスケープする
select json_quote("\\ \b \n \r \t");+------------------------------+
| json_quote("\\ \b \n \r \t") |
+------------------------------+
| "\\ \b \n \r \t" |
+------------------------------+ -
制御文字をエスケープする
select json_quote("\0");+------------------+
| json_quote("\0") |
+------------------+
| "\u0000" |
+------------------+ -
エスケープ記号の後にエスケープ対象ではない文字が続く場合
select json_quote("\a");+------------------+
| json_quote("\a") |
+------------------+
| "a" |
+------------------+ -
ゼロ以外の非表示文字
select json_quote("\1");+------------------+
| json_quote("\1") |
+------------------+
| "1" |
+------------------+