В MySQL, JSON_TYPE()
функцията връща типа на JSON стойност. По-конкретно, той връща utf8mb4
низ, указващ типа на стойността.
Вие предоставяте стойността на JSON като аргумент.
Синтаксис
Синтаксисът е така:
JSON_TYPE(json_val)
Където json_val
е стойността на JSON, за която да се върне типа. Това може да бъде обект, масив или скаларен тип.
Пример 1 – Обект
Ето пример, когато стойността е обект.
SET @data = '{"Name": "Homer", "Stupid": true}'; SELECT JSON_TYPE(@data) 'JSON Type';
Резултат:
+-----------+ | JSON Type | +-----------+ | OBJECT | +-----------+
Пример 2 – Масив
Ето пример за масив.
SET @data = '[1, 2, 3]'; SELECT JSON_TYPE(@data) 'JSON Type';
Резултат:
+-----------+ | JSON Type | +-----------+ | ARRAY | +-----------+
Пример 3 – Извличане на данни от масив
Можете също да получите вида на отделните елементи в масива.
SET @data = '[1, 2, 3]'; SELECT JSON_EXTRACT(@data, '$[1]') 'Data', JSON_TYPE(JSON_EXTRACT(@data, '$[1]')) 'JSON Type';
Резултат:
+------+-----------+ | Data | JSON Type | +------+-----------+ | 2 | INTEGER | +------+-----------+
Пример 4 – Извличане на данни от обект
Същото важи и за членовете на обект.
SET @data = '{"Name": "Homer", "Stupid": "True"}'; SELECT JSON_EXTRACT(@data, '$.Stupid') 'Data', JSON_TYPE(JSON_EXTRACT(@data, '$.Stupid')) 'JSON Type';
Резултат:
+--------+-----------+ | Data | JSON Type | +--------+-----------+ | "True" | STRING | +--------+-----------+
В този случай стойността беше низовият литерал "True"
.
Ето още един пример, но този път с помощта на булева стойност true
.
SET @data = '{"Name": "Homer", "Stupid": true}'; SELECT JSON_EXTRACT(@data, '$.Stupid') 'Data', JSON_TYPE(JSON_EXTRACT(@data, '$.Stupid')) 'JSON Type';
Резултат:
+------+-----------+ | Data | JSON Type | +------+-----------+ | true | BOOLEAN | +------+-----------+
Пример 5 – Заявка към база данни
Този пример използва колона на база данни.
SELECT Contents, JSON_TYPE(Contents) 'Contents', JSON_TYPE(JSON_EXTRACT(Contents, '$.Name')) 'Name' FROM Collections WHERE CollectionId = 4;
Резултат:
+--------------------------------+----------+--------+ | Contents | Contents | Name | +--------------------------------+----------+--------+ | {"Name": "Homer", "Stupid": 1} | OBJECT | STRING | +--------------------------------+----------+--------+