In MySQL, de JSON_TYPE()
functie retourneert het type van een JSON-waarde. Meer specifiek, het retourneert een utf8mb4
tekenreeks die het type van de waarde aangeeft.
U geeft de JSON-waarde op als argument.
Syntaxis
De syntaxis gaat als volgt:
JSON_TYPE(json_val)
Waar json_val
is de JSON-waarde waarvoor het type moet worden geretourneerd. Dit kan een object, een array of een scalair type zijn.
Voorbeeld 1 – Object
Hier is een voorbeeld wanneer de waarde een object is.
SET @data = '{"Name": "Homer", "Stupid": true}'; SELECT JSON_TYPE(@data) 'JSON Type';
Resultaat:
+-----------+ | JSON Type | +-----------+ | OBJECT | +-----------+
Voorbeeld 2 – Array
Hier is een matrixvoorbeeld.
SET @data = '[1, 2, 3]'; SELECT JSON_TYPE(@data) 'JSON Type';
Resultaat:
+-----------+ | JSON Type | +-----------+ | ARRAY | +-----------+
Voorbeeld 3 – Gegevens extraheren uit een array
U kunt ook het type van de afzonderlijke elementen in de array krijgen.
SET @data = '[1, 2, 3]'; SELECT JSON_EXTRACT(@data, '$[1]') 'Data', JSON_TYPE(JSON_EXTRACT(@data, '$[1]')) 'JSON Type';
Resultaat:
+------+-----------+ | Data | JSON Type | +------+-----------+ | 2 | INTEGER | +------+-----------+
Voorbeeld 4 – Gegevens extraheren uit een object
Hetzelfde geldt voor leden van een object.
SET @data = '{"Name": "Homer", "Stupid": "True"}'; SELECT JSON_EXTRACT(@data, '$.Stupid') 'Data', JSON_TYPE(JSON_EXTRACT(@data, '$.Stupid')) 'JSON Type';
Resultaat:
+--------+-----------+ | Data | JSON Type | +--------+-----------+ | "True" | STRING | +--------+-----------+
In dat geval was de waarde de letterlijke tekenreeks "True"
.
Hier is nog een voorbeeld, maar deze keer met de booleaanse waarde true
.
SET @data = '{"Name": "Homer", "Stupid": true}'; SELECT JSON_EXTRACT(@data, '$.Stupid') 'Data', JSON_TYPE(JSON_EXTRACT(@data, '$.Stupid')) 'JSON Type';
Resultaat:
+------+-----------+ | Data | JSON Type | +------+-----------+ | true | BOOLEAN | +------+-----------+
Voorbeeld 5 – Databasequery
In dit voorbeeld wordt een databasekolom gebruikt.
SELECT Contents, JSON_TYPE(Contents) 'Contents', JSON_TYPE(JSON_EXTRACT(Contents, '$.Name')) 'Name' FROM Collections WHERE CollectionId = 4;
Resultaat:
+--------------------------------+----------+--------+ | Contents | Contents | Name | +--------------------------------+----------+--------+ | {"Name": "Homer", "Stupid": 1} | OBJECT | STRING | +--------------------------------+----------+--------+