मारियाडीबी में, JSON_OBJECT()
एक अंतर्निहित फ़ंक्शन है जो एक JSON ऑब्जेक्ट देता है जिसमें तर्क के रूप में प्रदान किए गए कुंजी/मान जोड़े होते हैं।
सिंटैक्स
वाक्य रचना इस प्रकार है:
JSON_OBJECT([key, value[, key, value] ...])
फ़ंक्शन किसी भी संख्या में कुंजी/मान जोड़े को स्वीकार करता है।
कुंजी/मान सूची खाली भी हो सकती है।
उदाहरण
फ़ंक्शन को प्रदर्शित करने के लिए यहां एक सरल उदाहरण दिया गया है:
SELECT JSON_OBJECT("name", "Homer", "type", "Idiot");
परिणाम:
+-----------------------------------------------+ | JSON_OBJECT("name", "Homer", "type", "Idiot") | +-----------------------------------------------+ | {"name": "Homer", "type": "Idiot"} | +-----------------------------------------------+
कोई तर्क नहीं
जैसा कि उल्लेख किया गया है, तर्क सूची खाली हो सकती है, इस स्थिति में, एक खाली वस्तु वापस कर दी जाएगी:
SELECT JSON_OBJECT();
परिणाम:
+---------------+ | JSON_OBJECT() | +---------------+ | {} | +---------------+
गलत पैरामीटर गणना
हालाँकि, यदि आप तर्क प्रदान करते हैं, तो वे तर्कों की एक सम संख्या होनी चाहिए (ताकि प्रत्येक कुंजी का एक समान मान हो)।
यहाँ क्या होता है जब मैं JSON_OBJECT()
. के लिए केवल एक तर्क पास करता हूँ :
SELECT JSON_OBJECT("name");
परिणाम:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_OBJECT'
यदि मैं तीन तर्क पारित करता हूं तो वही त्रुटि होती है:
SELECT JSON_OBJECT("name", "Homer", "type");
परिणाम:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_OBJECT'
और इसी तरह…
अशक्त कुंजी नाम
मारियाडीबी दस्तावेज में कहा गया है कि यदि कोई कुंजी नाम NULL
. है तो एक त्रुटि वापस आ जाती है .
हालांकि, मुझे एक अलग परिणाम मिलता है:
SELECT JSON_OBJECT(null, null);
परिणाम:
+-------------------------+ | JSON_OBJECT(null, null) | +-------------------------+ | {"": null} | +-------------------------+