MariaDB
 sql >> Baza danych >  >> RDS >> MariaDB

MariaDB JSON_LOOSE() Objaśnienie

W MariaDB, JSON_LOOSE() to wbudowana funkcja, która dodaje spacje do dokumentu JSON, aby uczynić go bardziej czytelnym.

Jest podobny do JSON_DETAILED() funkcji, z wyjątkiem tego, że nie podkreśla zagnieżdżonych struktur w sposób, w jaki JSON_DETAILED() tak.

Aby uzyskać efekt odwrotny (tj. Aby usunąć niepotrzebne spacje), użyj JSON_COMPACT() funkcja.

Składnia

Składnia wygląda tak:

JSON_LOOSE(json_doc)

Gdzie json_doc jest dokumentem JSON.

Przykład

Oto przykład do zademonstrowania.

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

SELECT JSON_LOOSE(@json);

Wynik:

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

Oryginalny dokument nie zawiera spacji, ale wynik JSON_LOOSE() zawiera spacje..

Tutaj ponownie porównano z oryginalnym dokumentem:

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

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

Wynik:

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

Obiekty i tablice

Oto przykład z obiektem i tablicą, aby pokazać, że nie zapewnia żadnego dodatkowego formatowania dla takich struktur.

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

SELECT JSON_LOOSE(@json);

Wynik:

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

Jeśli potrzebujesz dodatkowego formatowania dla tych struktur, wypróbuj JSON_DETAILED() funkcja.

Argument zerowy

Jeśli argumentem jest NULL , wynik to NULL :

SELECT JSON_LOOSE(null);

Wynik:

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

Nieprawidłowa liczba parametrów

Brak argumentów skutkuje błędem:

SELECT JSON_LOOSE();

Wynik:

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

Tak samo jest, gdy podajesz zbyt wiele argumentów:

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

Wynik:

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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MariaDB JSON_EXISTS() Objaśnienie

  2. Różnica między TRIM() i TRIM_ORACLE() w MariaDB

  3. MariaDB DEFAULT() Objaśnienie

  4. Objaśnienie złożonych jednostek daty i czasu MariaDB

  5. Funkcje JSON MariaDB