В MariaDB, JSON_LOOSE()
е вградена функция, която добавя интервали към JSON документ, за да го направи по-четлив.
Той е подобен на JSON_DETAILED()
функция, с изключение на това, че не подчертава вложените структури по начина, по който JSON_DETAILED()
прави.
За обратния ефект (т.е. за премахване на ненужни интервали), използвайте JSON_COMPACT()
функция.
Синтаксис
Синтаксисът е така:
JSON_LOOSE(json_doc)
Където json_doc
е JSON документът.
Пример
Ето пример за демонстрация.
SET @json = '{"name":"Wag","type":"Dog"}';
SELECT JSON_LOOSE(@json);
Резултат:
+--------------------------------+ | JSON_LOOSE(@json) | +--------------------------------+ | {"name": "Wag", "type": "Dog"} | +--------------------------------+
Оригиналният документ не съдържа интервали, а резултатът от JSON_LOOSE()
съдържа интервали..
Тук отново се сравнява с оригиналния документ:
SET @json = '{"name":"Wag","type":"Dog"}';
SELECT
@json AS 'Original',
JSON_LOOSE(@json) AS 'Modified';
SET @json = '{"specs":{"w":10,"h":30},"scores":[1,2,3]}';
SELECT JSON_LOOSE(@json);
Резултат:
+----------------------------------------------------+ | JSON_LOOSE(@json) | +----------------------------------------------------+ | {"specs": {"w": 10, "h": 30}, "scores": [1, 2, 3]} | +----------------------------------------------------+
Ако имате нужда от допълнително форматиране за тези структури, опитайте JSON_DETAILED()
функция.
Нулев аргумент
Ако аргументът е NULL
, резултатът е NULL
:
SELECT JSON_LOOSE(null);
Резултат:
+------------------+ | JSON_LOOSE(null) | +------------------+ | NULL | +------------------+
Неправилен брой параметри
Предоставянето на без аргументи води до грешка:
SELECT JSON_LOOSE();
Резултат:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_LOOSE'
Същото е, когато предоставите твърде много аргументи:
SELECT JSON_LOOSE('{"a":1}', 2);
Резултат:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_LOOSE'