मारियाडीबी में, JSON_DETAILED() एक अंतर्निहित फ़ंक्शन है जो एक JSON दस्तावेज़ लेता है, और इसे अधिक मानव-पठनीय प्रारूप में लौटाता है।
इसे कभी-कभी दस्तावेज़ को सुंदर बनाने के रूप में जाना जाता है। यह MySQL के JSON_PRETTY() . के समान है समारोह।
विपरीत प्रभाव के लिए (अर्थात किसी JSON दस्तावेज़ को संक्षिप्त करने के लिए), JSON_COMPACT() का उपयोग करें समारोह।
सिंटैक्स
वाक्य रचना इस प्रकार है:
JSON_DETAILED(json_doc[, tab_size])
जहां json_doc JSON दस्तावेज़ है, और tab_size एक वैकल्पिक मान है जो टैब/इंडेंट के आकार को निर्दिष्ट करता है।
उदाहरण
प्रदर्शित करने के लिए यहां एक उदाहरण दिया गया है।
SET @json_document = '{ "name": "Wag", "type": "Dog", "weight": 20 }';
SELECT JSON_DETAILED(@json_document); परिणाम:
+----------------------------------------+
| JSON_DETAILED(@json_document) |
+----------------------------------------+
| {
"name": "Wag",
"type": "Dog",
"weight": 20
} |
+----------------------------------------+ मूल दस्तावेज़ सभी एक पंक्ति में है, जिसमें कोई टैब/इंडेंट या अन्य स्वरूपण नहीं है।
परिणाम कई पंक्तियों में फैला हुआ है और इसमें टैब / इंडेंट शामिल हैं, जो दस्तावेज़ को हम मनुष्यों के लिए पढ़ने में आसान बनाता है।
नेस्टेड संरचनाएं
यहां कुछ और उदाहरण दिए गए हैं, इस बार नेस्टेड संरचनाओं के साथ:
SET @json_document = '{ "_id" : 1, "awards" : [ "Top Dog", "Best Dog", "Biggest Dog" ] }';
SELECT JSON_DETAILED(@json_document); परिणाम:
+---------------------------------------+
| JSON_DETAILED(@json_document) |
+---------------------------------------+
| {
"_id": 1,
"awards":
[
"Top Dog",
"Best Dog",
"Biggest Dog"
]
} |
+---------------------------------------+ और दूसरा:
SET @json_document = '{ "_id" : 2, "specs" : { "height" : 400, "weight" : 15, "color" : "brown" } }';
SELECT JSON_DETAILED(@json_document); परिणाम:
+---------------------------------------+
| JSON_DETAILED(@json_document) |
+---------------------------------------+
| {
"_id": 2,
"specs":
{
"height": 400,
"weight": 15,
"color": "brown"
}
} |
+---------------------------------------+ टैब का आकार
आपके पास टैब आकार निर्दिष्ट करने का विकल्प भी है। ऐसा करने के लिए, वांछित टैब आकार को दूसरे तर्क के रूप में पास करें।
उदाहरण
SET @json_document = '{ "_id" : 1, "awards" : [ "Top Dog", "Best Dog", "Biggest Dog" ] }';
SELECT JSON_DETAILED(@json_document, 1); परिणाम:
{
"_id": 1,
"awards":
[
"Top Dog",
"Best Dog",
"Biggest Dog"
]
} और यहाँ यह फिर से है, लेकिन एक बड़े टैब आकार के साथ:
SET @json_document = '{ "_id" : 1, "awards" : [ "Top Dog", "Best Dog", "Biggest Dog" ] }';
SELECT JSON_DETAILED(@json_document, 10); परिणाम:
{
"_id": 1,
"awards":
[
"Top Dog",
"Best Dog",
"Biggest Dog"
]
} बड़ा 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_DETAILED(@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_DETAILED(null); परिणाम:
+---------------------+ | JSON_DETAILED(null) | +---------------------+ | NULL | +---------------------+
गलत पैरामीटर गणना
तर्क न देने से त्रुटि होती है:
SELECT JSON_DETAILED(); परिणाम:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_DETAILED'
जब आप बहुत अधिक तर्क देते हैं तो ऐसा ही होता है:
SELECT JSON_DETAILED('{ "a": 1}', 1, 2); परिणाम:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_DETAILED'