Oracle डाटाबेस में, JSON_OBJECT()
फ़ंक्शन कुंजी-मूल्य जोड़े या एक ऑब्जेक्ट प्रकार उदाहरण के अनुक्रम से JSON ऑब्जेक्ट बनाता है।
सिंटैक्स
वाक्य रचना इस प्रकार है:
JSON_OBJECT
( [ [ KEY ] key_expr VALUE val_expr [ FORMAT JSON ]
,]...
[ JSON_on_null_clause ] [ JSON_returning_clause ]
[ STRICT ]
[ WITH UNIQUE KEYS ] )
कहां:
[ KEY ] key_expr VALUE val_expr
गुण कुंजी-मान युग्म निर्दिष्ट करता है।FORMAT JSON
इंगित करता है कि इनपुट स्ट्रिंग JSON है, और इसलिए इसे आउटपुट में उद्धृत नहीं किया जाएगा।JSON_on_null_clause
उपयोग करने के लिए व्यवहार निर्दिष्ट करता है जबexpr
शून्य के बराबर है (यानी या तो आउटपुट में शून्य मान शामिल करें या नहीं)।JSON_returning_clause
वापसी मूल्य के प्रकार को निर्दिष्ट करता है।STRICT
जाँचता है कि JSON जनरेशन फ़ंक्शन का आउटपुट सही JSON है या नहीं। यदि चेक विफल हो जाता है, तो सिंटैक्स त्रुटि उत्पन्न हो जाती है।WITH UNIQUE KEYS
गारंटी देता है कि जनरेट किए गए JSON ऑब्जेक्ट में अद्वितीय कुंजियाँ होती हैं।
उदाहरण
यह कैसे काम करता है यह दिखाने के लिए यहां एक उदाहरण दिया गया है:
SELECT JSON_OBJECT(KEY 'score' VALUE 37) FROM DUAL;
परिणाम:
{"score":37}
KEY
भाग वैकल्पिक है, इसलिए निम्नलिखित समान परिणाम प्राप्त करता है:
SELECT JSON_OBJECT('score' VALUE 37) FROM DUAL;
परिणाम:
{"score":37}
एकाधिक कुंजी/मान जोड़े
यहां एक से अधिक कुंजी/मान युग्मों के साथ एक उदाहरण दिया गया है:
SELECT JSON_OBJECT(
KEY 'fname' VALUE 'Homer',
KEY 'lname' VALUE 'Escobar',
KEY 'score' VALUE 237
)
FROM DUAL;
परिणाम:
{"fname":"Homer","lname":"Escobar","score":237}
नेस्टेड JSON
यदि आपके द्वारा पास किए गए मानों में से एक में JSON है, तो आप FORMAT JSON
. का उपयोग कर सकते हैं यह निर्दिष्ट करने के लिए तर्क कि इसमें JSON है और इसे आउटपुट में उद्धृत नहीं किया जाना चाहिए।
उदाहरण:
SELECT JSON_OBJECT(
KEY 'details'
VALUE '{"name": "Peter", "score": 64}'
FORMAT JSON
)
FROM DUAL;
परिणाम:
{"details":{"name": "Peter", "score": 64}}
अगर हम FORMAT JSON
. को हटा देते हैं, तो यहां बताया गया है भाग:
SELECT JSON_OBJECT(
KEY 'details'
VALUE '{"name": "Peter", "score": 64}'
)
FROM DUAL;
परिणाम:
{"details":"{\"name\": \"Peter\", \"score\": 64}"}
डेटाबेस उदाहरण
मान लीजिए कि हम निम्नलिखित क्वेरी चलाते हैं:
SELECT *
FROM regions;
परिणाम:
REGION_ID REGION_NAME ____________ _________________________ 1 Europe 2 Americas 3 Asia 4 Middle East and Africa
यहां वही क्वेरी है, लेकिन चयनित कॉलम JSON_OBJECT()
को पास कर दिए गए हैं समारोह:
SELECT JSON_OBJECT(*)
FROM regions;
परिणाम:
{"REGION_ID":1,"REGION_NAME":"Europe"} {"REGION_ID":2,"REGION_NAME":"Americas"} {"REGION_ID":3,"REGION_NAME":"Asia"} {"REGION_ID":4,"REGION_NAME":"Middle East and Africa"}
और यहाँ यह फ़ंक्शन के लिए केवल एक कॉलम पास किया गया है:
SELECT JSON_OBJECT(region_name)
FROM regions;
परिणाम:
{"region_name":"Europe"} {"region_name":"Americas"} {"region_name":"Asia"} {"region_name":"Middle East and Africa"}
इस फ़ंक्शन की अधिक विस्तृत व्याख्या के लिए Oracle के दस्तावेज़ देखें।