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'; 結果:
+-----------------------------+--------------------------------+
| Original | Modified |
+-----------------------------+--------------------------------+
| {"name":"Wag","type":"Dog"} | {"name": "Wag", "type": "Dog"} |
+-----------------------------+--------------------------------+ オブジェクトと配列
これは、オブジェクトと配列の例です。これは、そのような構造に追加のフォーマットが提供されていないことを示しています。
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'