मारियाडीबी में, JSON_DEPTH()
एक अंतर्निहित फ़ंक्शन है जो आपको JSON दस्तावेज़ की गहराई की जांच करने की अनुमति देता है।
यह JSON दस्तावेज़ को एक तर्क के रूप में स्वीकार करता है, और दस्तावेज़ की अधिकतम गहराई लौटाता है।
सिंटैक्स
वाक्य रचना इस प्रकार है:
JSON_DEPTH(json_doc)
जहां json_doc
JSON दस्तावेज़ है जिसके लिए गहराई वापस करनी है।
उदाहरण
प्रदर्शित करने के लिए यहां एक उदाहरण दिया गया है।
SELECT JSON_DEPTH('{ "name": "Wag" }');
परिणाम:
+---------------------------------+ | JSON_DEPTH('{ "name": "Wag" }') | +---------------------------------+ | 2 | +---------------------------------+
इस मामले में, गहराई 2
. है ।
स्केलर मान और खाली ऑब्जेक्ट/सरणी
स्केलर मान या खाली सरणियों या वस्तुओं की गहराई 1
. होती है :
SELECT
JSON_DEPTH('{}'),
JSON_DEPTH('[]'),
JSON_DEPTH(1);
परिणाम:
+------------------+------------------+---------------+ | JSON_DEPTH('{}') | JSON_DEPTH('[]') | JSON_DEPTH(1) | +------------------+------------------+---------------+ | 1 | 1 | 1 | +------------------+------------------+---------------+
गहरा JSON दस्तावेज़
यहां एक उदाहरण दिया गया है जो 4
. की गहराई वाले 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_DEPTH(@json_document);
परिणाम:
+----------------------------+ | JSON_DEPTH(@json_document) | +----------------------------+ | 4 | +----------------------------+
अशक्त तर्क
अगर तर्क NULL
है , परिणाम NULL
. है :
SELECT JSON_DEPTH(null);
परिणाम:
+------------------+ | JSON_DEPTH(null) | +------------------+ | NULL | +------------------+
अमान्य JSON
NULL
में अमान्य JSON परिणाम पास करना चेतावनी के साथ:
SELECT JSON_DEPTH('{1}');
परिणाम:
+-------------------+ | JSON_DEPTH('{1}') | +-------------------+ | NULL | +-------------------+ 1 row in set, 1 warning (0.000 sec)
आइए देखें चेतावनी:
SHOW WARNINGS;
परिणाम:
+---------+------+--------------------------------------------------------------------------------+ | Level | Code | Message | +---------+------+--------------------------------------------------------------------------------+ | Warning | 4038 | Syntax error in JSON text in argument 1 to function 'json_depth' at position 2 | +---------+------+--------------------------------------------------------------------------------+
गलत पैरामीटर गणना
तर्क न देने से त्रुटि होती है:
SELECT JSON_DEPTH();
परिणाम:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_DEPTH'
जब आप बहुत अधिक तर्क देते हैं तो ऐसा ही होता है:
SELECT JSON_DEPTH('{"a": 1}', 2);
परिणाम:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_DEPTH'