Di MariaDB, JSON_COMPACT()
adalah fungsi bawaan yang menghapus semua ruang yang tidak perlu dari dokumen JSON, sehingga sesingkat dan sesingkat mungkin, dan mengembalikan hasilnya.
Ini dapat berguna ketika Anda perlu menyimpan data JSON dalam kolom database, dan Anda tidak ingin dokumen JSON menggunakan lebih banyak ruang daripada yang diperlukan.
Untuk efek sebaliknya (yaitu untuk mempercantik dokumen JSON dengan menambahkan indentasi dan menyebarkannya ke beberapa baris), gunakan JSON_DETAILED()
fungsi.
Sintaks
Sintaksnya seperti ini:
JSON_COMPACT(json_doc)
Dimana json_doc
adalah dokumen JSON.
Contoh
Berikut ini contoh untuk didemonstrasikan.
SET @json_document = '{"a": [0, 1], "b": [2, 3]}';
SELECT
JSON_COMPACT(@json_document) AS Compact,
@json_document AS Original;
Hasil:
+-----------------------+----------------------------+ | Compact | Original | +-----------------------+----------------------------+ | {"a":[0,1],"b":[2,3]} | {"a": [0, 1], "b": [2, 3]} | +-----------------------+----------------------------+
Dalam hal ini, kolom pertama berisi versi yang dipadatkan, dan kolom kedua berisi dokumen JSON asli sebelum dipadatkan.
Dokumen JSON Lebih Besar
Berikut ini contoh dengan dokumen JSON yang sedikit lebih besar dan cantik.
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_COMPACT(@json_document);
Hasil:
{"_id":1,"name":"Wag","details":{"type":"Dog","weight":20,"awards":{"Florida Dog Awards":"Top Dog","New York Marathon":"Fastest Dog","Sumo 2020":"Biggest Dog"}}}
Argumen Null
Jika argumennya adalah NULL
, hasilnya adalah NULL
:
SELECT JSON_COMPACT(null);
Hasil:
+--------------------+ | JSON_COMPACT(null) | +--------------------+ | NULL | +--------------------+
Jumlah Parameter Salah
Tidak memberikan argumen akan menyebabkan kesalahan:
SELECT JSON_COMPACT();
Hasil:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_COMPACT'
Kami mendapatkan hasil yang sama jika kami memberikan terlalu banyak argumen:
SELECT JSON_COMPACT('{ "a": 1}', '{ "b": 1 }');
Hasil:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_COMPACT'