In MySQL der JSON_KEYS()
Die Funktion gibt Schlüssel aus dem Wert der obersten Ebene eines JSON-Objekts zurück. Die Schlüssel werden als JSON-Array oder, wenn es sich um einen path
handelt, zurückgegeben Argument angegeben ist, die Schlüssel der obersten Ebene aus dem ausgewählten Pfad.
Sie stellen das JSON-Dokument als Argument für die Funktion bereit.
Sie können auch (optional) ein zweites Argument angeben, um anzugeben, wo der „Top-Level“-Pfad innerhalb des JSON-Dokuments beginnt.
Syntax
Die Syntax lautet wie folgt:
JSON_KEYS(json_doc[, path])
Wobei json_doc
ist das JSON-Dokument und path
ist ein optionales Argument, um zu bestimmen, wo der „Top-Level“-Pfad innerhalb des JSON-Dokuments beginnt.
Das Ergebnisarray ist leer, wenn das ausgewählte Objekt leer ist. Wenn der Wert der obersten Ebene verschachtelte Unterobjekte hat, enthält der Rückgabewert keine Schlüssel aus diesen Unterobjekten.
Beispiel 1 – Grundlegende Verwendung
Hier ist ein Beispiel zur Veranschaulichung.
SELECT JSON_KEYS('{"a": 1, "b": 2, "c": 3}') AS 'Result';
Ergebnis:
+-----------------+ | Result | +-----------------+ | ["a", "b", "c"] | +-----------------+
Hier ist ein weiteres Beispiel:
SELECT JSON_KEYS('{"Name": "Bart", "Age": 10}') AS 'Result';
Ergebnis:
+-----------------+ | Result | +-----------------+ | ["Age", "Name"] | +-----------------+
Beispiel 2 – Geben Sie einen Pfad an
Hier ist ein Beispiel für die Angabe eines Pfads. Dadurch können wir die Schlüssel aus einem verschachtelten Objekt abrufen (anstatt nur auf das oberste Objekt des gesamten JSON-Dokuments beschränkt zu sein).
SELECT JSON_KEYS('{"a": 1, "b": 2, "c": {"d": 3, "e": 4, "f": 5}}', '$.c') AS 'Result';
Ergebnis:
+-----------------+ | Result | +-----------------+ | ["d", "e", "f"] | +-----------------+
Beispiel 3 – Nicht vorhandener Pfad
Wenn Sie einen Pfad angeben, der nicht existiert, wird ein NULL-Wert zurückgegeben.
SELECT JSON_KEYS('{"a": 1, "b": 2, "c": {"d": 3, "e": 4, "f": 5}}', '$.z') AS 'Result';
Ergebnis:
+--------+ | Result | +--------+ | NULL | +--------+
Sie erhalten auch einen NULL-Wert, wenn eines der Argumente NULL
ist oder wenn das erste Argument kein JSON-Objekt ist.
Beispiel 4 – Arrays
Arrays sind keine Objekte und enthalten keine Schlüssel/Wert-Paare. Daher erhalten Sie einen NULL-Wert, wenn Sie versuchen, Schlüssel aus einem Array zurückzugeben.
SELECT JSON_KEYS('[1, 2, 3]') AS 'Result';
Ergebnis:
+--------+ | Result | +--------+ | NULL | +--------+
Wenn jedoch eines der Elemente des Arrays ein Objekt enthält, können Sie immer noch den path
verwenden Argument, um die Schlüssel von diesem Objekt zu erhalten.
SELECT JSON_KEYS('[1, 2, {"a": 1, "b": 2}]', '$[2]') AS 'Result';
Ergebnis:
+------------+ | Result | +------------+ | ["a", "b"] | +------------+
Beispiel 5 – Leere Objekte
Wenn das ausgewählte Objekt leer ist, erhalten Sie ein leeres Array.
SELECT JSON_KEYS('{}') AS 'Result';
Ergebnis:
+--------+ | Result | +--------+ | [] | +--------+