В этом руководстве вы узнаете, как использовать функцию ISJSON() SQL Server для проверки того, содержит ли строка допустимый JSON.
Введение в функцию ISJSON() SQL Server
Функция ISJSON() проверяет, содержит ли строка допустимый JSON.
Вот синтаксис функции ISJSON():
ISJSON( expression [, json_type_constraint] )
В этом синтаксисе:
- выражение — это проверяемая строка, которая может быть строкой-литералом, переменной или столбцом таблицы.
- json_type_constraint — тип JSON для проверки выражения. Допустимые значения json_type_constraint: VALUE, ARRAY, OBJECT или SCALAR. json_type_constraint необязателен. Если вы опустите json_type_constraint, функция проверит, являются ли входные данные объектом JSON или массивом.
В следующей таблице показано подробное значение каждого значения:
Ценить | Значение |
---|---|
ЦЕНИТЬ | Проверьте, является ли входная строка допустимым значением JSON, которое может быть объектом JSON, массивом, числом, строкой, логическим значением или значением null. |
МНОЖЕСТВО | Проверьте, является ли входная строка допустимым массивом JSON. |
ОБЪЕКТ | Проверьте, является ли входная строка допустимым объектом JSON. |
СКАЛЯРНЫЙ | Проверьте, является ли входная строка скалярным значением. |
Функция ISJSON() возвращает 1, если строка содержит допустимый JSON, в противном случае — 0. Если выражение равно null, функция ISJSON() возвращает null.
Примеры функций ISJSON() SQL Server
Давайте рассмотрим несколько примеров использования функции ISJSON().
1) Примеры базовых функций SQL Server ISJSON()
В следующем примере функция ISJSON() используется для проверки того, содержит ли строка допустимый объект JSON:
SELECT ISJSON('{}') AS result;
Выход:
result ------ 1
В следующем примере функция ISJSON() используется для определения того, содержит ли строка допустимый массив JSON:
SELECT ISJSON('[]') AS result;
Выход:
result ------ 1
Следующий оператор возвращает 0, поскольку строка не содержит допустимого JSON:
SELECT ISJSON('Hi') AS result;
Выход:
result ------ 0
Чтобы проверить, является ли строка «Hi» скалярным значением JSON, необходимо использовать SCALAR json_constraint_type следующим образом:
SELECT ISJSON('"Hi"',SCALAR) AS result;
Выход:
result ------ 1 (1 row)
Следующий пример возвращает 0, поскольку ключ объекта JSON заключен в одинарные кавычки:
SELECT ISJSON('{''age'': 10}') result;
Выход:
result ------ 0
2) Использование функции ISJSON() SQL Server с табличными данными
Сначала создайте новую таблицу с названием settings:
CREATE TABLE settings( id INT IDENTITY PRIMARY KEY, options NVARCHAR(MAX) NOT NULL );
В столбце параметров будут храниться данные JSON.
Во-вторых, вставьте несколько строк в таблицу настроек:
INSERT INTO settings(options) VALUES ('{"theme": "dark", "fontSize": 14, "language": "en"}'), ('{"theme": "light", "fontSize": 12, "language": "fr"}'), ('{"theme": "auto, "fontSize": 16, "language": "de"}');
В-третьих, проверьте данные JSON в столбце параметров таблицы настроек с помощью функции ISJSON():
SELECT id, options, ISJSON(options) valid FROM settings;
Выход:
id | options | valid ------------------------------------------------------------------ 1 | {"theme": "dark", "fontSize": 14, "language": "en"} | 1 2 | {"theme": "light", "fontSize": 12, "language": "fr"} | 1 3 | {"theme": "auto, "fontSize": 16, "language": "de"} | 0
Краткое содержание
- Используйте функцию ISJSON(), чтобы проверить, содержит ли строка допустимый JSON.