Di MySQL, JSON_KEYS()
fungsi mengembalikan kunci dari nilai tingkat atas objek JSON. Kunci ditampilkan sebagai larik JSON, atau, jika path
argumen diberikan, kunci tingkat atas dari jalur yang dipilih.
Anda memberikan dokumen JSON sebagai argumen untuk fungsi tersebut.
Anda juga dapat (secara opsional) memberikan argumen kedua untuk menentukan di mana jalur "tingkat atas" dimulai dari dalam dokumen JSON.
Sintaks
Sintaksnya seperti ini:
JSON_KEYS(json_doc[, path])
Dimana json_doc
adalah dokumen JSON dan path
adalah argumen opsional untuk menentukan di mana jalur "tingkat atas" dimulai dalam dokumen JSON.
Array hasil kosong jika objek yang dipilih kosong. Jika nilai tingkat atas memiliki subobjek bersarang, nilai yang dikembalikan tidak menyertakan kunci dari subobjek tersebut.
Contoh 1 – Penggunaan Dasar
Berikut ini contoh untuk didemonstrasikan.
SELECT JSON_KEYS('{"a": 1, "b": 2, "c": 3}') AS 'Result';
Hasil:
+-----------------+ | Result | +-----------------+ | ["a", "b", "c"] | +-----------------+
Ini contoh lain:
SELECT JSON_KEYS('{"Name": "Bart", "Age": 10}') AS 'Result';
Hasil:
+-----------------+ | Result | +-----------------+ | ["Age", "Name"] | +-----------------+
Contoh 2 – Tentukan Jalur
Berikut ini contoh menentukan jalur. Hal ini memungkinkan kita untuk mendapatkan kunci dari objek bersarang (bukan hanya terbatas pada objek tingkat atas dari seluruh dokumen JSON).
SELECT JSON_KEYS('{"a": 1, "b": 2, "c": {"d": 3, "e": 4, "f": 5}}', '$.c') AS 'Result';
Hasil:
+-----------------+ | Result | +-----------------+ | ["d", "e", "f"] | +-----------------+
Contoh 3 – Jalur Tidak Ada
Jika Anda menentukan jalur yang tidak ada, nilai NULL akan dikembalikan.
SELECT JSON_KEYS('{"a": 1, "b": 2, "c": {"d": 3, "e": 4, "f": 5}}', '$.z') AS 'Result';
Hasil:
+--------+ | Result | +--------+ | NULL | +--------+
Anda juga akan mendapatkan nilai NULL jika salah satu argumennya adalah NULL
atau jika argumen pertama bukan objek JSON.
Contoh 4 – Array
Array bukan objek, dan tidak berisi pasangan kunci/nilai. Oleh karena itu, Anda akan mendapatkan nilai NULL jika Anda mencoba mengembalikan kunci dari array.
SELECT JSON_KEYS('[1, 2, 3]') AS 'Result';
Hasil:
+--------+ | Result | +--------+ | NULL | +--------+
Namun, jika salah satu elemen array berisi objek, Anda masih dapat menggunakan path
argumen untuk mendapatkan kunci dari objek itu.
SELECT JSON_KEYS('[1, 2, {"a": 1, "b": 2}]', '$[2]') AS 'Result';
Hasil:
+------------+ | Result | +------------+ | ["a", "b"] | +------------+
Contoh 5 – Objek Kosong
Jika objek yang dipilih kosong, Anda akan mendapatkan array kosong.
SELECT JSON_KEYS('{}') AS 'Result';
Hasil:
+--------+ | Result | +--------+ | [] | +--------+