Di MariaDB, JSON_LOOSE()
adalah fungsi bawaan yang menambahkan spasi ke dokumen JSON agar lebih mudah dibaca.
Ini mirip dengan JSON_DETAILED()
fungsi, kecuali bahwa itu tidak menekankan struktur bersarang seperti JSON_DETAILED()
tidak.
Untuk efek sebaliknya (yaitu untuk menghapus spasi yang tidak perlu), gunakan JSON_COMPACT()
fungsi.
Sintaks
Sintaksnya seperti ini:
JSON_LOOSE(json_doc)
Dimana json_doc
adalah dokumen JSON.
Contoh
Berikut ini contoh untuk didemonstrasikan.
SET @json = '{"name":"Wag","type":"Dog"}';
SELECT JSON_LOOSE(@json);
Hasil:
+--------------------------------+ | JSON_LOOSE(@json) | +--------------------------------+ | {"name": "Wag", "type": "Dog"} | +--------------------------------+
Dokumen asli tidak mengandung spasi, tetapi hasil dari JSON_LOOSE()
berisi spasi..
Ini dia lagi dibandingkan dengan dokumen aslinya:
SET @json = '{"name":"Wag","type":"Dog"}';
SELECT
@json AS 'Original',
JSON_LOOSE(@json) AS 'Modified';
Hasil:
+-----------------------------+--------------------------------+ | Original | Modified | +-----------------------------+--------------------------------+ | {"name":"Wag","type":"Dog"} | {"name": "Wag", "type": "Dog"} | +-----------------------------+--------------------------------+
Objek dan Array
Berikut adalah contoh dengan objek dan larik, hanya untuk menunjukkan bahwa itu tidak menyediakan pemformatan tambahan untuk struktur seperti itu.
SET @json = '{"specs":{"w":10,"h":30},"scores":[1,2,3]}';
SELECT JSON_LOOSE(@json);
Hasil:
+----------------------------------------------------+ | JSON_LOOSE(@json) | +----------------------------------------------------+ | {"specs": {"w": 10, "h": 30}, "scores": [1, 2, 3]} | +----------------------------------------------------+
Jika Anda memerlukan pemformatan tambahan untuk struktur ini, coba JSON_DETAILED()
fungsi.
Argumen Null
Jika argumennya adalah NULL
, hasilnya adalah NULL
:
SELECT JSON_LOOSE(null);
Hasil:
+------------------+ | JSON_LOOSE(null) | +------------------+ | NULL | +------------------+
Jumlah Parameter Salah
Tidak memberikan argumen akan menyebabkan kesalahan:
SELECT JSON_LOOSE();
Hasil:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_LOOSE'
Sama halnya jika Anda memberikan terlalu banyak argumen:
SELECT JSON_LOOSE('{"a":1}', 2);
Hasil:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_LOOSE'