メインコンテンツまでスキップ
に最終更新

JSON_QUOTE

説明​

入力文字列を二重引用符で囲み、その中の特殊文字と制御文字をエスケープします。主に、文字列を有効な JSON 文字列へ変換するために使用します。

特殊文字は次のとおりです。

  • 二重引用符 (")
  • バックスラッシュ (\)
  • バックスペース (\b)
  • 改行 (\n)
  • キャリッジリターン (\r)
  • 水平タブ (\t)

制御文字の例:

  • CHAR(0) は \u0000 にエスケープされます。

構文​

JSON_QUOTE (<str>)

パラメータ​

<str>: 二重引用符で囲む文字列型の値です。

戻り値​

二重引用符で囲まれた文字列を返します。

使用上の注意​

  • パラメータが NULL の場合は NULL を返します。
  • パラメータにエスケープ記号 (\) とエスケープ対象ではない文字が続く場合、その記号は削除されます。例 4 と 5 を参照してください。

例​

  1. 二重引用符をエスケープする

    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." |
    +------------------------------------------------------------+
  2. 特殊文字をエスケープする

    select json_quote("\\ \b \n \r \t");
    +------------------------------+
    | json_quote("\\ \b \n \r \t") |
    +------------------------------+
    | "\\ \b \n \r \t" |
    +------------------------------+
  3. 制御文字をエスケープする

    select json_quote("\0");
    +------------------+
    | json_quote("\0") |
    +------------------+
    | "\u0000" |
    +------------------+
  4. エスケープ記号の後にエスケープ対象ではない文字が続く場合

    select json_quote("\a");
    +------------------+
    | json_quote("\a") |
    +------------------+
    | "a" |
    +------------------+
  5. ゼロ以外の非表示文字

    select json_quote("\1");
    +------------------+
    | json_quote("\1") |
    +------------------+
    | "1" |
    +------------------+