Mysql
 sql >> Datenbank >  >> RDS >> Mysql

JSON_TYPE() – Abrufen des Typs eines JSON-Werts in MySQL

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 |
+--------------------------------+----------+--------+