I MySQL, JSON_TYPE() funktion returnerar typen av ett JSON-värde. Mer specifikt returnerar den en utf8mb4 sträng som anger värdets typ.
Du anger JSON-värdet som ett argument.
Syntax
Syntaxen ser ut så här:
JSON_TYPE(json_val)
Där json_val är det JSON-värde som typen ska returneras för. Detta kan vara ett objekt, en array eller en skalär typ.
Exempel 1 – Objekt
Här är ett exempel när värdet är ett objekt.
SET @data = '{"Name": "Homer", "Stupid": true}';
SELECT JSON_TYPE(@data) 'JSON Type';
Resultat:
+-----------+ | JSON Type | +-----------+ | OBJECT | +-----------+
Exempel 2 – Array
Här är ett exempel på array.
SET @data = '[1, 2, 3]'; SELECT JSON_TYPE(@data) 'JSON Type';
Resultat:
+-----------+ | JSON Type | +-----------+ | ARRAY | +-----------+
Exempel 3 – Extrahera data från en array
Du kan också få typen av de enskilda elementen i arrayen.
SET @data = '[1, 2, 3]'; SELECT JSON_EXTRACT(@data, '$[1]') 'Data', JSON_TYPE(JSON_EXTRACT(@data, '$[1]')) 'JSON Type';
Resultat:
+------+-----------+ | Data | JSON Type | +------+-----------+ | 2 | INTEGER | +------+-----------+
Exempel 4 – Extrahera data från ett objekt
Detsamma gäller medlemmar av ett objekt.
SET @data = '{"Name": "Homer", "Stupid": "True"}';
SELECT
JSON_EXTRACT(@data, '$.Stupid') 'Data',
JSON_TYPE(JSON_EXTRACT(@data, '$.Stupid')) 'JSON Type';
Resultat:
+--------+-----------+ | Data | JSON Type | +--------+-----------+ | "True" | STRING | +--------+-----------+
I det fallet var värdet den bokstavliga strängen "True" .
Här är ett annat exempel, men den här gången med det booleska värdet true .
SET @data = '{"Name": "Homer", "Stupid": true}';
SELECT
JSON_EXTRACT(@data, '$.Stupid') 'Data',
JSON_TYPE(JSON_EXTRACT(@data, '$.Stupid')) 'JSON Type';
Resultat:
+------+-----------+ | Data | JSON Type | +------+-----------+ | true | BOOLEAN | +------+-----------+
Exempel 5 – Databasfråga
Det här exemplet använder en databaskolumn.
SELECT Contents, JSON_TYPE(Contents) 'Contents', JSON_TYPE(JSON_EXTRACT(Contents, '$.Name')) 'Name' FROM Collections WHERE CollectionId = 4;
Resultat:
+--------------------------------+----------+--------+
| Contents | Contents | Name |
+--------------------------------+----------+--------+
| {"Name": "Homer", "Stupid": 1} | OBJECT | STRING |
+--------------------------------+----------+--------+