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'