In MySQL der JSON_TYPE()
Die Funktion gibt den Typ eines JSON-Werts zurück. Genauer gesagt gibt es einen utf8mb4
zurück Zeichenfolge, die den Typ des Werts angibt.
Sie geben den JSON-Wert als Argument an.
Syntax
Die Syntax lautet wie folgt:
JSON_TYPE(json_val)
Wobei json_val
ist der JSON-Wert, für den der Typ zurückgegeben werden soll. Dies kann ein Objekt, ein Array oder ein Skalartyp sein.
Beispiel 1 – Objekt
Hier ist ein Beispiel, wenn der Wert ein Objekt ist.
SET @data = '{"Name": "Homer", "Stupid": true}'; SELECT JSON_TYPE(@data) 'JSON Type';
Ergebnis:
+-----------+ | JSON Type | +-----------+ | OBJECT | +-----------+
Beispiel 2 – Array
Hier ist ein Array-Beispiel.
SET @data = '[1, 2, 3]'; SELECT JSON_TYPE(@data) 'JSON Type';
Ergebnis:
+-----------+ | JSON Type | +-----------+ | ARRAY | +-----------+
Beispiel 3 – Daten aus einem Array extrahieren
Sie können auch den Typ der einzelnen Elemente im Array erhalten.
SET @data = '[1, 2, 3]'; SELECT JSON_EXTRACT(@data, '$[1]') 'Data', JSON_TYPE(JSON_EXTRACT(@data, '$[1]')) 'JSON Type';
Ergebnis:
+------+-----------+ | Data | JSON Type | +------+-----------+ | 2 | INTEGER | +------+-----------+
Beispiel 4 – Daten aus einem Objekt extrahieren
Dasselbe gilt für Mitglieder eines Objekts.
SET @data = '{"Name": "Homer", "Stupid": "True"}'; SELECT JSON_EXTRACT(@data, '$.Stupid') 'Data', JSON_TYPE(JSON_EXTRACT(@data, '$.Stupid')) 'JSON Type';
Ergebnis:
+--------+-----------+ | Data | JSON Type | +--------+-----------+ | "True" | STRING | +--------+-----------+
In diesem Fall war der Wert das Zeichenfolgenliteral "True"
.
Hier ist ein weiteres Beispiel, aber diesmal mit dem booleschen Wert true
.
SET @data = '{"Name": "Homer", "Stupid": true}'; SELECT JSON_EXTRACT(@data, '$.Stupid') 'Data', JSON_TYPE(JSON_EXTRACT(@data, '$.Stupid')) 'JSON Type';
Ergebnis:
+------+-----------+ | Data | JSON Type | +------+-----------+ | true | BOOLEAN | +------+-----------+
Beispiel 5 – Datenbankabfrage
Dieses Beispiel verwendet eine Datenbankspalte.
SELECT Contents, JSON_TYPE(Contents) 'Contents', JSON_TYPE(JSON_EXTRACT(Contents, '$.Name')) 'Name' FROM Collections WHERE CollectionId = 4;
Ergebnis:
+--------------------------------+----------+--------+ | Contents | Contents | Name | +--------------------------------+----------+--------+ | {"Name": "Homer", "Stupid": 1} | OBJECT | STRING | +--------------------------------+----------+--------+