メインコンテンツまでスキップ
バージョン: 26.x

JSON_UNQUOTE

説明

この関数はJSON値からクオートを削除し、結果を文字列として返します。パラメータがNULLの場合、NULLを返します。

特殊文字には以下が含まれます:

  • クオート("
  • バックスラッシュ(\
  • バックスペース(\b
  • 改行(\n
  • キャリッジリターン(\r
  • 水平タブ(\t

制御文字には以下が含まれます:

  • CHAR(0)\u0000としてエスケープされます

構文

JSON_UNQUOTE (<str>)

パラメータ

  • <str> クォートを削除する対象の文字列。

戻り値

文字列を返します。特殊なケースは以下の通りです:

  • 入力パラメータがNULLの場合、NULLを返します。
  • 入力パラメータがダブルクォートで囲まれた値でない場合、値自体を返します。
  • 入力パラメータが文字列でない場合、自動的に文字列に変換されてから値自体を返します。

  1. 文字列内のエスケープ文字が削除されます

    select json_unquote('"I am a \\"string\\" that contains double quotes."');
    +--------------------------------------------------------------------+
    | json_unquote('"I am a \\"string\\" that contains double quotes."') |
    +--------------------------------------------------------------------+
    | I am a "string" that contains double quotes. |
    +--------------------------------------------------------------------+
  2. 特殊文字のエスケープ

    select json_unquote('"\\\\ \\b \\n \\r \\t"');
    +----------------------------------------+
    | json_unquote('"\\\\ \\b \\n \\r \\t"') |
    +----------------------------------------+
    | \
    |
    +----------------------------------------+

エスケープ文字が削除されるため、一部の空白文字(改行、バックスペース、タブなど)が出力されます

  1. 制御文字のエスケープ

    select json_unquote('"\\u0000"');
    +---------------------------+
    | json_unquote('"\\u0000"') |
    +---------------------------+
    | |
    +---------------------------+
  2. 無効なJSON文字列

    select json_unquote('"I am a "string" that contains double quotes."');
    ERROR 1105 (HY000): errCode = 2, detailMessage = [RUNTIME_ERROR]Invalid JSON text in argument 1 to function json_unquote: "I am a "string" that contains double quotes."
  3. 引用符で始まるが引用符で終わらないケース

    select json_unquote('"I am a "string" that contains double quotes.');
    +---------------------------------------------------------------+
    | json_unquote('"I am a "string" that contains double quotes.') |
    +---------------------------------------------------------------+
    | "I am a "string" that contains double quotes. |
    +---------------------------------------------------------------+
  4. クォートで終わる場合

    select json_unquote('I am a "string" that contains double quotes."');
    +---------------------------------------------------------------+
    | json_unquote('I am a "string" that contains double quotes."') |
    +---------------------------------------------------------------+
    | I am a "string" that contains double quotes." |
    +---------------------------------------------------------------+