Di MariaDB, JSON_KEYS()
adalah fungsi bawaan yang mengembalikan larik kunci tingkat atas dari dokumen JSON. Jika sebuah jalur disediakan, ia mengembalikan kunci tingkat atas dari jalur tersebut.
Ini mengecualikan kunci dari sub-objek bersarang di tingkat yang ditentukan.
Juga, jika objek yang dipilih kosong, array kosong akan dikembalikan.
Sintaks
Sintaksnya seperti ini:
JSON_KEYS(json_doc[, path])
Dimana json_doc
adalah dokumen JSON, dan path
adalah jalur di dalam dokumen.
Contoh
Berikut ini contoh untuk didemonstrasikan.
SET @json_document = '
{
"name": "Wag",
"type": "Dog",
"weight": 20
}
';
SELECT JSON_KEYS(@json_document);
Hasil:
+----------------------------+ | JSON_KEYS(@json_document) | +----------------------------+ | ["name", "type", "weight"] | +----------------------------+
Menentukan Jalur
Berikut ini contoh menentukan jalur dalam dokumen:
SET @json_document = '
{
"_id" : 1,
"name" : "Wag",
"details" : {
"type" : "Dog",
"weight" : 20,
"awards" : {
"Florida Dog Awards" : "Top Dog",
"New York Marathon" : "Fastest Dog",
"Sumo 2020" : "Biggest Dog"
}
}
}
';
SELECT JSON_KEYS(
@json_document,
'$.details'
) AS Result;
Hasil:
+------------------------------+ | Result | +------------------------------+ | ["type", "weight", "awards"] | +------------------------------+
Seperti yang disebutkan, sub-objek dikeluarkan dari hasil.
Jalur yang Tidak Ada
Melewati jalur yang tidak ada dalam dokumen JSON menghasilkan NULL
.
Contoh:
SET @json_document = '
{
"_id" : 1,
"name" : "Wag",
"details" : {
"type" : "Dog",
"weight" : 20,
"awards" : {
"Florida Dog Awards" : "Top Dog",
"New York Marathon" : "Fastest Dog",
"Sumo 2020" : "Biggest Dog"
}
}
}
';
SELECT JSON_KEYS(
@json_document,
'$.wrong'
) AS Result;
Hasil:
+--------+ | Result | +--------+ | NULL | +--------+
Objek Kosong
Jika objek yang dipilih kosong, array kosong akan dikembalikan:
SELECT JSON_KEYS('{}');
Hasil:
+-----------------+ | JSON_KEYS('{}') | +-----------------+ | [] | +-----------------+
Argumen Null
Jika ada argumen NULL
, hasilnya adalah NULL
:
SELECT
JSON_KEYS(null),
JSON_KEYS(null, '$.type'),
JSON_KEYS('{"a":1}', null);
Hasil:
+-----------------+---------------------------+----------------------------+ | JSON_KEYS(null) | JSON_KEYS(null, '$.type') | JSON_KEYS('{"a":1}', null) | +-----------------+---------------------------+----------------------------+ | NULL | NULL | NULL | +-----------------+---------------------------+----------------------------+
Jumlah Parameter Salah
Tidak memberikan argumen akan menyebabkan kesalahan:
SELECT JSON_KEYS();
Hasil:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_KEYS'
Sama halnya ketika Anda memberikan argumen yang terlalu sedikit atau terlalu banyak:
SELECT JSON_KEYS('{ "a": 1}', 1, 2);
Hasil:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_KEYS'