sql >> Database >  >> RDS >> MariaDB

MariaDB JSON_LOOSE() uitgelegd

In MariaDB, JSON_LOOSE() is een ingebouwde functie die spaties toevoegt aan een JSON-document om het leesbaarder te maken.

Het is vergelijkbaar met de JSON_DETAILED() functie, behalve dat het geneste structuren niet benadrukt zoals JSON_DETAILED() doet.

Voor het tegenovergestelde effect (d.w.z. om onnodige spaties te verwijderen), gebruikt u de JSON_COMPACT() functie.

Syntaxis

De syntaxis gaat als volgt:

JSON_LOOSE(json_doc)

Waar json_doc is het JSON-document.

Voorbeeld

Hier is een voorbeeld om te demonstreren.

SET @json = '{"name":"Wag","type":"Dog"}';

SELECT JSON_LOOSE(@json);

Resultaat:

+--------------------------------+
| JSON_LOOSE(@json)              |
+--------------------------------+
| {"name": "Wag", "type": "Dog"} |
+--------------------------------+

Het originele document bevat geen spaties, maar het resultaat van JSON_LOOSE() bevat spaties..

Hier wordt het nogmaals vergeleken met het originele document:

SET @json = '{"name":"Wag","type":"Dog"}';

SELECT 
    @json AS 'Original',
    JSON_LOOSE(@json) AS 'Modified';

Resultaat:

+-----------------------------+--------------------------------+
| Original                    | Modified                       |
+-----------------------------+--------------------------------+
| {"name":"Wag","type":"Dog"} | {"name": "Wag", "type": "Dog"} |
+-----------------------------+--------------------------------+

Objecten en arrays

Hier is een voorbeeld met een object en een array, om te laten zien dat het geen extra opmaak biedt voor dergelijke structuren.

SET @json = '{"specs":{"w":10,"h":30},"scores":[1,2,3]}';

SELECT JSON_LOOSE(@json);

Resultaat:

+----------------------------------------------------+
| JSON_LOOSE(@json)                                  |
+----------------------------------------------------+
| {"specs": {"w": 10, "h": 30}, "scores": [1, 2, 3]} |
+----------------------------------------------------+

Als je extra opmaak nodig hebt voor deze structuren, probeer dan de JSON_DETAILED() functie.

Nullargument

Als het argument NULL is , het resultaat is NULL :

SELECT JSON_LOOSE(null);

Resultaat:

+------------------+
| JSON_LOOSE(null) |
+------------------+
| NULL             |
+------------------+

Onjuist aantal parameters

Het verstrekken van geen argumenten resulteert in een fout:

SELECT JSON_LOOSE();

Resultaat:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_LOOSE'

Het is hetzelfde als je te veel argumenten geeft:

SELECT JSON_LOOSE('{"a":1}', 2);

Resultaat:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_LOOSE'

  1. Kan tabel niet afkappen omdat ernaar wordt verwezen door een FOREIGN KEY-beperking?

  2. DATE_ADD() Voorbeelden – MySQL

  3. Door komma's gescheiden waarden van een kolom in rij splitsen, via Oracle SQL-query

  4. Tijdelijke tabellen vergelijken voor PostgreSQL en Oracle GTT