V MySQL, JSON_KEYS()
funkce vrací klíče z hodnoty nejvyšší úrovně objektu JSON. Klíče jsou vráceny jako pole JSON nebo, pokud je to path
argument, klíče nejvyšší úrovně z vybrané cesty.
Jako argument funkci poskytnete dokument JSON.
Můžete také (volitelně) zadat druhý argument, který určí, kde začíná cesta „nejvyšší úrovně“ v dokumentu JSON.
Syntaxe
Syntaxe vypadá takto:
JSON_KEYS(json_doc[, path])
Kde json_doc
je dokument JSON a path
je volitelný argument pro určení, kde začíná cesta „nejvyšší úrovně“ v dokumentu JSON.
Pole výsledků je prázdné, pokud je vybraný objekt prázdný. Pokud má hodnota nejvyšší úrovně vnořené podobjekty, vrácená hodnota nezahrnuje klíče z těchto podobjektů.
Příklad 1 – Základní použití
Zde je příklad k demonstraci.
SELECT JSON_KEYS('{"a": 1, "b": 2, "c": 3}') AS 'Result';
Výsledek:
+-----------------+ | Result | +-----------------+ | ["a", "b", "c"] | +-----------------+
Zde je další příklad:
SELECT JSON_KEYS('{"Name": "Bart", "Age": 10}') AS 'Result';
Výsledek:
+-----------------+ | Result | +-----------------+ | ["Age", "Name"] | +-----------------+
Příklad 2 – Zadejte cestu
Zde je příklad zadání cesty. To nám umožňuje získat klíče z vnořeného objektu (místo omezení pouze na objekt nejvyšší úrovně celého dokumentu JSON).
SELECT JSON_KEYS('{"a": 1, "b": 2, "c": {"d": 3, "e": 4, "f": 5}}', '$.c') AS 'Result';
Výsledek:
+-----------------+ | Result | +-----------------+ | ["d", "e", "f"] | +-----------------+
Příklad 3 – Neexistující cesta
Pokud zadáte cestu, která neexistuje, vrátí se hodnota NULL.
SELECT JSON_KEYS('{"a": 1, "b": 2, "c": {"d": 3, "e": 4, "f": 5}}', '$.z') AS 'Result';
Výsledek:
+--------+ | Result | +--------+ | NULL | +--------+
Pokud je některý z argumentů NULL
, získáte také hodnotu NULL nebo pokud první argument není objekt JSON.
Příklad 4 – Pole
Pole nejsou objekty a neobsahují páry klíč/hodnota. Pokud se tedy pokusíte vrátit klíče z pole, získáte hodnotu NULL.
SELECT JSON_KEYS('[1, 2, 3]') AS 'Result';
Výsledek:
+--------+ | Result | +--------+ | NULL | +--------+
Pokud však některý z prvků pole obsahuje objekt, stále můžete použít path
argument pro získání klíčů z tohoto objektu.
SELECT JSON_KEYS('[1, 2, {"a": 1, "b": 2}]', '$[2]') AS 'Result';
Výsledek:
+------------+ | Result | +------------+ | ["a", "b"] | +------------+
Příklad 5 – Prázdné objekty
Pokud je vybraný objekt prázdný, dostanete prázdné pole.
SELECT JSON_KEYS('{}') AS 'Result';
Výsledek:
+--------+ | Result | +--------+ | [] | +--------+