SQL - ISJSON() 函式



內建的 SQL ISJSON() 函式用於檢查字串的 JSON(JavaScript 物件表示法)語法有效性。JSON 是一種在應用程式之間交換資料的簡單格式。

ISJSON 函式接受一個字串引數作為輸入,並返回一個位值,指示該字串是否為 JSON 格式。如果提供的字串是有效的 JSON,則該函式返回 1;否則,它返回 0。

語法

以下是 SQL ISJSON() 函式的語法:

ISJSON ( expression [, json_type_constraint] )

引數

此函式僅接受兩個引數。下面描述了這兩個引數:

  • expression − 要測試其 JSON 有效性的字串表示式。

  • json_type_constraint − 指定要檢查的輸入中的 JSON 型別。

示例

在以下示例中,我們將透過使用以下查詢傳遞有效的 JSON 來檢查輸出:

SELECT ISJSON('{"car": "RX100"}') AS Result;

輸出

當我們執行上述查詢時,將獲得如下輸出:

+------------------------------------+
|                              Result|
+------------------------------------+
|                                  1 |
+------------------------------------+

示例

讓我們考慮另一種情況,我們傳遞有效的輸入並使用以下查詢檢查輸出:

SELECT ISJSON('true', VALUE) AS Result;

輸出

當我們執行上述查詢時,將獲得如下輸出:

+------------------------------------+
|                              Result|
+------------------------------------+
|                                  1 |
+------------------------------------+

示例

讓我們看看另一個示例,我們將透過使用以下查詢在宣告字串時檢查有效的 JSON:

DECLARE @text Varchar(245) = '[{"Id":0,"Name":"TP"}]'
   IF ISJSON ( @text ) = 1
      PRINT 'Valid JSON'

輸出

當我們執行上述查詢時,將獲得如下輸出:

Valid JSON

示例

在以下示例中,我們將透過使用以下查詢檢查字串不包含有效 JSON 時的輸出:

SELECT ISJSON('car: RX100') AS Result;

輸出

執行上述查詢後,將顯示如下輸出:

+------------------------------------+
|                              Result|
+------------------------------------+
|                                  0 |
+------------------------------------+

示例

讓我們考慮另一個示例,我們將透過使用以下查詢傳遞無效的 JSON 來檢查輸出:

SELECT ISJSON('test', VALUE) AS Result;

輸出

執行上述查詢後,將顯示如下輸出:

+------------------------------------+
|                              Result|
+------------------------------------+
|                                  0 |
+------------------------------------+

示例

考慮以下示例,我們將向函式傳遞 NULL 並透過使用以下查詢檢查輸出:

SELECT ISJSON(NULL) AS Result;

輸出

執行上述查詢後,將顯示如下輸出:

+-------------------+
|            Result |
+-------------------+
|         NULL      |
+-------------------+

示例

讓我們看看以下示例,我們將使用基本的條件語句並根據包含 JSON 或不包含 JSON 的字串檢索輸出,查詢如下:

DECLARE @work varchar(255);
SET @work = '{"car": RX100}';
IF (ISJSON(@work) > 0)
   SELECT 'Valid JSON' AS 'Result';
ELSE
   SELECT 'Invalid JSON' AS 'Result';

輸出

以上查詢的輸出如下所示:

+------------------------------------+
|                              Result|
+------------------------------------+
|                       Invalid Json |
+------------------------------------+
sql-json-functions.htm
廣告