MariaDBでは、JSON_COMPACT()
は、JSONドキュメントから不要なスペースをすべて削除する組み込み関数です。これにより、JSONドキュメントは可能な限り短くコンパクトになり、結果が返されます。
これは、JSONデータをデータベース列に格納する必要があり、JSONドキュメントが必要以上のスペースを使い果たしたくない場合に便利です。
逆の効果(つまり、インデントを追加して複数行に分散することでJSONドキュメントを美しくする)には、JSON_DETAILED()
を使用します。 機能。
構文
構文は次のようになります:
JSON_COMPACT(json_doc)
json_doc
の場所 JSONドキュメントです。
例
実例を示します。
SET @json_document = '{"a": [0, 1], "b": [2, 3]}';
SELECT
JSON_COMPACT(@json_document) AS Compact,
@json_document AS Original;
結果:
+-----------------------+----------------------------+ | Compact | Original | +-----------------------+----------------------------+ | {"a":[0,1],"b":[2,3]} | {"a": [0, 1], "b": [2, 3]} | +-----------------------+----------------------------+
この場合、最初の列には圧縮されたバージョンが含まれ、2番目の列には圧縮される前の元のJSONドキュメントが含まれます。
より大きなJSONドキュメント
これは、少し大きくてきれいなJSONドキュメントの例です。
SET @json_document = '{
"_id" : 1,
"name" : "Wag",
"details" : {
"type" : "Dog",
"weight" : 20,
"awards" : {
"Florida Dog Awards" : "Top Dog",
"New York Marathon" : "Fastest Dog",
"Sumo 2020" : "Biggest Dog"
}
}
}';
SELECT JSON_COMPACT(@json_document);
結果:
{"_id":1,"name":"Wag","details":{"type":"Dog","weight":20,"awards":{"Florida Dog Awards":"Top Dog","New York Marathon":"Fastest Dog","Sumo 2020":"Biggest Dog"}}}
ヌル引数
引数がNULL
の場合 、結果はNULL
です :
SELECT JSON_COMPACT(null);
結果:
+--------------------+ | JSON_COMPACT(null) | +--------------------+ | NULL | +--------------------+
パラメータカウントが正しくありません
引数を指定しないとエラーが発生します:
SELECT JSON_COMPACT();
結果:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_COMPACT'
提供する引数が多すぎる場合も同じ結果が得られます:
SELECT JSON_COMPACT('{ "a": 1}', '{ "b": 1 }');
結果:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_COMPACT'