मारियाडीबी में, JSON_TYPE() एक अंतर्निहित फ़ंक्शन है जो एक स्ट्रिंग के रूप में JSON मान का प्रकार देता है।
सिंटैक्स
वाक्य रचना इस प्रकार है:
JSON_TYPE(json_val)
जहां json_val वह मान है जिसके लिए प्रकार वापस करना है।
ऑब्जेक्ट प्रकार
संभावित वापसी प्रकार निम्न तालिका में सूचीबद्ध हैं:
| रिटर्न प्रकार | मान | उदाहरण |
|---|---|---|
ARRAY | JSON सरणी। | [1, 2, 3] |
OBJECT | JSON ऑब्जेक्ट। | {"a":"1"} |
BOOLEAN | JSON सच/गलत शाब्दिक। | true या false |
DOUBLE | एक संख्या जिसमें कम से कम एक फ्लोटिंग पॉइंट दशमलव होता है। | 1.2 |
INTEGER | एक फ्लोटिंग पॉइंट दशमलव के बिना एक संख्या। | 1 |
NULL | JSON NULL शाब्दिक। इसे एक स्ट्रिंग के रूप में लौटाया जाता है, और इसे SQL NULL . के साथ भ्रमित नहीं होना चाहिए मूल्य। | NULL |
STRING | JSON स्ट्रिंग। | "bird" |
उदाहरण
प्रदर्शित करने के लिए यहां एक उदाहरण दिया गया है।
SET @json = '
{
"name" : "Fluffy",
"type" : "Cat"
}
';
SELECT JSON_TYPE(@json); परिणाम:
+------------------+ | JSON_TYPE(@json) | +------------------+ | OBJECT | +------------------+
इस उदाहरण में मैंने एक संपूर्ण JSON दस्तावेज़ पास किया है, जिसमें एक प्रकार का OBJECT . है ।
यहां और उदाहरण दिए गए हैं:
SELECT
JSON_TYPE('[1, 2, 3]'),
JSON_TYPE('{ "a" : 1 }'),
JSON_TYPE('true'),
JSON_TYPE('false'),
JSON_TYPE(10.59),
JSON_TYPE(10),
JSON_TYPE(null),
JSON_TYPE('"Fuzzy Smith"'); परिणाम (ऊर्ध्वाधर आउटपुट का उपयोग करके):
JSON_TYPE('[1, 2, 3]'): ARRAY
JSON_TYPE('{ "a" : 1 }'): OBJECT
JSON_TYPE('true'): BOOLEAN
JSON_TYPE('false'): BOOLEAN
JSON_TYPE(10.59): DOUBLE
JSON_TYPE(10): INTEGER
JSON_TYPE(null): NULL
JSON_TYPE('"Fuzzy Smith"'): STRING JSON दस्तावेज़ से मान निकालें
पिछले उदाहरणों में, मैंने प्रत्येक मान को सीधे फ़ंक्शन में एक शाब्दिक के रूप में पास किया।
हम JSON_TYPE() combine को मिला सकते हैं अन्य कार्यों के साथ, जैसे JSON_EXTRACT() एक बड़े JSON दस्तावेज़ के भीतर किसी मान के प्रकार का पता लगाने के लिए। किसी JSON दस्तावेज़ के प्रकार का पता लगाने के लिए उसका मान निकालने का एक उदाहरण यहां दिया गया है:
SET @json = '
{
"name" : "Wag",
"scores" : [8, 0, 9]
}
';
SELECT
JSON_TYPE(JSON_EXTRACT(@json, '$.name')) AS Result; परिणाम:
+--------+ | Result | +--------+ | STRING | +--------+
यहां एक और उदाहरण दिया गया है जो अधिक प्रकार देता है:
SET @json = '
{
"name" : "Wag",
"scores" : [8, 0, 9],
"weight" : 10.50,
"height" : null,
"age" : 4
}
';
SELECT
JSON_TYPE(
JSON_EXTRACT(@json, '$.name')
) AS a,
JSON_TYPE(
JSON_EXTRACT(@json, '$.scores')
) AS b,
JSON_TYPE(
JSON_EXTRACT(@json, '$.scores[0]')
) AS c,
JSON_TYPE(
JSON_EXTRACT(@json, '$.weight')
) AS d,
JSON_TYPE(
JSON_EXTRACT(@json, '$.height')
) AS e,
JSON_TYPE(
JSON_EXTRACT(@json, '$.age')
) AS f; परिणाम:
+--------+-------+---------+--------+------+---------+ | a | b | c | d | e | f | +--------+-------+---------+--------+------+---------+ | STRING | ARRAY | INTEGER | DOUBLE | NULL | INTEGER | +--------+-------+---------+--------+------+---------+
शून्य तर्क
यदि तर्क NULL है , फिर NULL लौटा दिया गया है।
SELECT JSON_TYPE(null); परिणाम:
+-----------------+ | JSON_TYPE(null) | +-----------------+ | NULL | +-----------------+
गलत पैरामीटर गणना
कॉलिंग JSON_TYPE() बिना तर्क के त्रुटि उत्पन्न होती है:
SELECT JSON_TYPE(); परिणाम:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_TYPE'
बहुत सारे तर्क पारित होने पर भी ऐसा ही होता है:
SELECT JSON_TYPE(1, 2); परिणाम:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_TYPE'