SQLite JSON दस्तावेज़ में मान डालने, सेट करने और बदलने के लिए कई कार्य प्रदान करता है। विशेष रूप से, यह json_insert()
. प्रदान करता है , json_set()
, और json_replace()
।
ये फ़ंक्शन समान कार्य करते हैं, और आप कभी-कभी उन्हें एक निश्चित बिंदु पर एक दूसरे के स्थान पर उपयोग कर सकते हैं।
लेकिन प्रत्येक फ़ंक्शन के बीच निश्चित रूप से एक स्पष्ट अंतर है।
अंतर
निम्न तालिका इन कार्यों के बीच अंतर को रेखांकित करती है:
कार्य | ओवरराइट करें यदि पहले से मौजूद है? | बनाएं अगर मौजूद नहीं है? |
---|---|---|
json_insert() | नहीं | हां |
json_replace() | हां | नहीं |
json_set() | हां | हां |
तो इन कार्यों के बीच का अंतर यह है कि वे मौजूदा और गैर-मौजूद कुंजियों/मानों से कैसे निपटते हैं।
उदाहरण
यह दिखाने के लिए यहां कुछ सरल उदाहरण दिए गए हैं कि प्रत्येक फ़ंक्शन मौजूदा और गैर-मौजूद कुंजियों/मानों से कैसे निपटता है।
जब कुंजी पहले से मौजूद हो
यहां बताया गया है कि प्रत्येक फ़ंक्शन पहले से मौजूद कुंजी को अपडेट करने से कैसे निपटता है:
SELECT
json_insert('{ "a" : 1 }', '$.a', 2) AS json_insert,
json_replace('{ "a" : 1 }', '$.a', 2) AS json_replace,
json_set('{ "a" : 1 }', '$.a', 2) AS json_set;
परिणाम:
+-------------+--------------+----------+ | json_insert | json_replace | json_set | +-------------+--------------+----------+ | {"a":1} | {"a":2} | {"a":2} | +-------------+--------------+----------+
हम देख सकते हैं कि json_insert()
कुछ भी अपडेट नहीं किया, लेकिन अन्य दो कार्यों ने किया।
यह सरणियों के साथ भी ऐसा ही है:
SELECT
json_insert('[ 1, 2, 3 ]', '$[1]', 4) AS json_insert,
json_replace('[ 1, 2, 3 ]', '$[1]', 4) AS json_replace,
json_set('[ 1, 2, 3 ]', '$[1]', 4) AS json_set;
परिणाम:
+-------------+--------------+----------+ | json_insert | json_replace | json_set | +-------------+--------------+----------+ | [1,2,3] | [1,4,3] | [1,4,3] | +-------------+--------------+----------+
जब कुंजी मौजूद न हो
यहां बताया गया है कि जब कुंजी मौजूद नहीं होती है तो क्या होता है:
SELECT
json_insert('{ "a" : 1 }', '$.b', 2) AS json_insert,
json_replace('{ "a" : 1 }', '$.b', 2) AS json_replace,
json_set('{ "a" : 1 }', '$.b', 2) AS json_set;
परिणाम:
+---------------+--------------+---------------+ | json_insert | json_replace | json_set | +---------------+--------------+---------------+ | {"a":1,"b":2} | {"a":1} | {"a":1,"b":2} | +---------------+--------------+---------------+
हम देख सकते हैं कि json_replace()
नई कुंजी/मान जोड़ी नहीं डाली, लेकिन अन्य दो कार्यों ने किया।
सरणियों के साथ एक ही सौदा:
SELECT
json_insert('[ 1, 2, 3 ]', '$[3]', 4) AS json_insert,
json_replace('[ 1, 2, 3 ]', '$[3]', 4) AS json_replace,
json_set('[ 1, 2, 3 ]', '$[3]', 4) AS json_set;
परिणाम:
+-------------+--------------+-----------+ | json_insert | json_replace | json_set | +-------------+--------------+-----------+ | [1,2,3,4] | [1,2,3] | [1,2,3,4] | +-------------+--------------+-----------+
यह [#]
. का उपयोग करके भी किया जा सकता है पथ:
SELECT
json_insert('[ 1, 2, 3 ]', '$[#]', 4) AS json_insert,
json_replace('[ 1, 2, 3 ]', '$[#]', 4) AS json_replace,
json_set('[ 1, 2, 3 ]', '$[#]', 4) AS json_set;
परिणाम:
+-------------+--------------+-----------+ | json_insert | json_replace | json_set | +-------------+--------------+-----------+ | [1,2,3,4] | [1,2,3] | [1,2,3,4] | +-------------+--------------+-----------+
[#]
. का उपयोग करने का एक लाभ यह है कि आपको यह जानने की जरूरत नहीं है कि सरणी में पहले से ही कितने तत्व हैं।