文件首頁
MySQL 9.0 參考手冊
相關文件 下載本手冊
PDF (US Ltr) - 40.0Mb
PDF (A4) - 40.1Mb
Man Pages (TGZ) - 258.2Kb
Man Pages (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 參考手冊  /  ...  /  建立 JSON 值的函數

14.17.2 建立 JSON 值的函數

本節列出的函數會從元件元素組成 JSON 值。

  • JSON_ARRAY([val[, val] ...])

    評估 (可能為空的) 值清單,並傳回包含這些值的 JSON 陣列。

    mysql> SELECT JSON_ARRAY(1, "abc", NULL, TRUE, CURTIME());
    +---------------------------------------------+
    | JSON_ARRAY(1, "abc", NULL, TRUE, CURTIME()) |
    +---------------------------------------------+
    | [1, "abc", null, true, "11:30:24.000000"]   |
    +---------------------------------------------+
  • JSON_OBJECT([key, val[, key, val] ...])

    評估 (可能為空的) 鍵值組清單,並傳回包含這些鍵值組的 JSON 物件。如果任何鍵名稱為 NULL 或參數的數量為奇數,則會發生錯誤。

    mysql> SELECT JSON_OBJECT('id', 87, 'name', 'carrot');
    +-----------------------------------------+
    | JSON_OBJECT('id', 87, 'name', 'carrot') |
    +-----------------------------------------+
    | {"id": 87, "name": "carrot"}            |
    +-----------------------------------------+
  • JSON_QUOTE(string)

    將字串以 JSON 值引號括住,方法是用雙引號字元包裝它,並逸出內部的引號和其他字元,然後將結果以 utf8mb4 字串傳回。如果參數為 NULL,則傳回 NULL

    此函數通常用於產生有效的 JSON 字串文字,以便包含在 JSON 文件中。

    某些特殊字元會使用反斜線逸出,其逸出序列如表格 14.23,「JSON_UNQUOTE() 特殊字元逸出序列」中所示。

    mysql> SELECT JSON_QUOTE('null'), JSON_QUOTE('"null"');
    +--------------------+----------------------+
    | JSON_QUOTE('null') | JSON_QUOTE('"null"') |
    +--------------------+----------------------+
    | "null"             | "\"null\""           |
    +--------------------+----------------------+
    mysql> SELECT JSON_QUOTE('[1, 2, 3]');
    +-------------------------+
    | JSON_QUOTE('[1, 2, 3]') |
    +-------------------------+
    | "[1, 2, 3]"             |
    +-------------------------+

您也可以透過使用 CAST(value AS JSON) 將其他類型的值轉換為 JSON 類型來取得 JSON 值;如需詳細資訊,請參閱在 JSON 和非 JSON 值之間轉換

有兩個可產生 JSON 值的彙總函數。 JSON_ARRAYAGG() 會以單一 JSON 陣列傳回結果集,而 JSON_OBJECTAGG() 會以單一 JSON 物件傳回結果集。如需詳細資訊,請參閱第 14.19 節,「彙總函數」