JSON मर्ज
फ्री ऑनलाइन JSON मर्ज टूल, एक क्लिक में कई JSON ऑब्जेक्ट को चुनी हुई स्ट्रैटेजी (डीप/शैलो/ऐरे कॉनकैट/ऐरे रिप्लेस) के अनुसार एक में मर्ज करें, 4 कॉन्फ्लिक्ट रिज़ॉल्यूशन मोड प्रदान करता है, मल्टी-सोर्स डेटा एग्रीगेशन, कॉन्फिग लेयरिंग, i18n मर्ज जैसे परिदृश्यों के लिए उपयुक्त।
संबंधित सुझाव
JSON मर्ज (JSON Merge) क्या है?
JSON मर्ज (JSON Merge) दो या अधिक JSON ऑब्जेक्ट को निश्चित नियमों के अनुसार एक नए ऑब्जेक्ट में मिलाने की प्रक्रिया है। इंजीनियरिंग में इसकी उपस्थिति बहुत अधिक है: ① कई माइक्रोसर्विसेज से आने वाले JSON को एक यूनिफाइड रिस्पॉन्स में जोड़ना (BFF लेयर एग्रीगेशन); ② base कॉन्फिग, env कॉन्फिग, यूज़र कॉन्फिग को "एनवायरनमेंट ओवरराइड" लॉजिक के अनुसार फाइनल कॉन्फिग में मर्ज करना (Node.js config, Viper, Spring Cloud Config); ③ कई i18n ट्रांसलेशन फाइलों को मर्ज, ओवरराइड, पूरक बनाकर पूर्ण डिक्शनरी बनाना; ④ कई mock डेटा ऐरे को मर्ज करके पूर्ण टेस्ट डेटा बनाना; ⑤ कई API पेजिनेटेड रिस्पॉन्स को मर्ज करके पूर्ण परिणाम बनाना।
मर्ज की कठिनाई "मिलाना" नहीं, बल्कि "कॉन्फ्लिक्ट कैसे हैंडल करें" है। सामान्य कॉन्फ्लिक्ट रिज़ॉल्यूशन स्ट्रैटेजी 4 प्रकार की होती हैं: ① **डीप मर्ज (Deep Merge)**: नेस्टेड ऑब्जेक्ट में रिकर्सिवली प्रवेश करें, प्रत्येक की को अलग-अलग मर्ज करें, केवल लीफ नोड कॉन्फ्लिक्ट पर ही ओवरराइड करें, कॉन्फिग लेयरिंग के लिए उपयुक्त; ② **शैलो मर्ज (Shallow Merge)**: केवल टॉप-लेवल की को मर्ज करें, समान नाम की की पूरी तरह ओवरराइड हों, सिमेंटिक्स सबसे सरल, `Object.assign` के समान; ③ **ऐरे कॉनकैट (Array Concat)**: ऐरे प्रकार की वैल्यू को एक लंबे ऐरे में जोड़ें और सभी एलिमेंट्स का क्रम बनाए रखें, API एग्रीगेशन के लिए उपयुक्त; ④ **ऐरे रिप्लेस (Array Replace)**: ऐरे प्रकार की वैल्यू में बाद में इनपुट की गई वैल्यू प्रबल हो, सीधे ओवरराइड करें, कॉन्फिग ओवरराइड के लिए उपयुक्त।
कार्यान्वयन स्तर पर, डीप मर्ज आमतौर पर स्टैक-आधारित रिकर्शन का उपयोग करता है: पहले जांचें कि दोनों सामान्य ऑब्जेक्ट हैं (ऐरे नहीं, null नहीं), फिर प्रत्येक की के लिए रिकर्सिव प्रोसेसिंग करें; टाइप असंगति पर (जैसे समान नाम की की एक तरफ ऑब्जेक्ट और दूसरी तरफ ऐरे), आमतौर पर "बाद में इनपुट किया गया प्रबल होता है" के अनुसार हैंडल किया जाता है, टाइप रूपांतरण नहीं किया जाता। GeekFormat का JSON मर्ज टूल उपरोक्त 4 स्ट्रैटेजी को बिल्ट-इन प्रदान करता है, पेज पर सीधे स्विच किया जा सकता है; 2 से N खंड JSON एक बार में पेस्ट करें, स्वचालित रूप से क्रमानुसार मर्ज होंगे, यूनिफाइड फ़ॉर्मेटेड परिणाम आउटपुट होगा। पूरी मर्ज प्रक्रिया ब्राउज़र लोकल में पूरी होती है, मूल डेटा अपलोड नहीं होता।
उपयोग के मामले
- कई माइक्रोसर्विस API रिस्पॉन्स को फ्रंटएंड उपयोग के लिए यूनिफाइड JSON स्ट्रक्चर में मर्ज करना
- base / dev / prod बहु-स्तरीय कॉन्फिग फाइलों को एग्रीगेट करना, एनवायरनमेंट ओवरराइड द्वारा फाइनल कॉन्फिग जेनरेट करना
- कई i18n ट्रांसलेशन फाइलों को भाषा के अनुसार मर्ज, डीडुप्लिकेट, पूरक बनाकर पूर्ण डिक्शनरी बनाना
- कई mock डेटा ऐरे या कई पेजिनेटेड API रिस्पॉन्स को पूर्ण डेटासेट में मर्ज करना
- फ्रंटएंड कंपोनेंट में डिफ़ॉल्ट कॉन्फिग + यूज़र कस्टम कॉन्फिग + रिमोट A/B एक्सपेरिमेंट कॉन्फिग को मर्ज करना
- डेटा माइग्रेशन में कई सोर्स सिस्टम की JSON एक्सपोर्ट फाइलों को मर्ज करके डाउनस्ट्रीम फ़ॉर्मेट में यूनिफाई करना
उपयोग कैसे करें
- मर्ज करने के लिए 2 से N खंड JSON को बाईं ओर के इनपुट बॉक्स में क्रमानुसार पेस्ट करें (डिफ़ॉल्ट 2 हैं), या「+」क्लिक करके अधिक इनपुट जोड़ें
- टूलबार ड्रॉपडाउन में मर्ज स्ट्रैटेजी चुनें: डीप मर्ज (Deep) / शैलो मर्ज (Shallow) / ऐरे कॉनकैट (Array Concat) / ऐरे रिप्लेस (Array Replace)
- 「मर्ज」बटन पर क्लिक करें, दाईं ओर आउटपुट बॉक्स में मर्ज किया हुआ फ़ॉर्मेटेड परिणाम दिखाई देगा; यदि इनपुट में सिंटैक्स त्रुटि है तो विशिष्ट पंक्ति संख्या और एरर मैसेज दिखाया जाएगा
- परिणाम सही होने की पुष्टि के बाद「कॉपी」पर क्लिक करके मर्ज परिणाम को क्लिपबोर्ड में कॉपी करें, या「डाउनलोड」पर क्लिक करके merged.json फ़ाइल के रूप में सेव करें और फ़ॉर्मेटिंग, Schema वैलिडेशन जैसे बाद के प्रोसेसिंग करें
विशेषताएं
- 4 मर्ज स्ट्रैटेजी: डीप मर्ज / शैलो मर्ज / ऐरे कॉनकैट / ऐरे रिप्लेस, एक क्लिक से स्विच करें विभिन्न बिज़नेस परिदृश्यों को पूरा करें
- 2 से N खंड JSON का समर्थन: डिफ़ॉल्ट 2 इनपुट बॉक्स,「+」पर क्लिक करके डायनेमिक रूप से अधिक सोर्स JSON जोड़ें, मल्टी-सोर्स एग्रीगेशन के लिए लचीला
- डीप रिकर्सिव मर्ज: बहु-स्तरीय नेस्टेड ऑब्जेक्ट को स्मार्ट तरीके से हैंडल करें, लीफ नोड कॉन्फ्लिक्ट को निर्दिष्ट स्ट्रैटेजी के अनुसार हैंडल करें, सभी मान्य फ़ील्ड सुरक्षित रखें
- लचीला कॉन्फ्लिक्ट रिज़ॉल्यूशन: टॉप-लेवल कॉन्फ्लिक्ट पर चयनित स्ट्रैटेजी से निष्पादित; नेस्टेड ऑब्जेक्ट कॉन्फ्लिक्ट पर डीप मर्ज में प्रवेश; ऐरे कॉन्फ्लिक्ट पर arrayConcat/arrayReplace से अलग-अलग हैंडल
- यूनिफाइड फ़ॉर्मेटेड आउटपुट: मर्ज परिणाम 2-स्पेस इंडेंटेशन के साथ प्रदर्शित, मैन्युअल समीक्षा और डाउनस्ट्रीम टूल में सीधे कॉपी करने के लिए सुविधाजनक
- रीयल-टाइम मर्ज निष्पादन: पेस्ट करने के बाद「मर्ज」क्लिक करते ही परिणाम मिले, त्रुटि होने पर विशिष्ट JSON पंक्ति संख्या और एरर मैसेज दिखाएं
- लोकल प्रोसेसिंग से गोपनीयता सुरक्षा: पार्सिंग, मर्ज, फ़ॉर्मेटिंग सभी ब्राउज़र लोकल में पूरी होती है, इनपुट सामग्री किसी सर्वर पर नहीं भेजी जाती
- डाउनस्ट्रीम से निर्बाध कनेक्शन: मर्ज परिणाम को एक क्लिक में JSON फ़ॉर्मेटर, Schema वैलिडेटर, कोड जेनरेटर जैसे टूल में कॉपी करके आगे प्रोसेस करें
कोड उदाहरण
lodash merge का उपयोग करके JavaScript में डीप मर्ज
javascript// npm install lodash.merge
import merge from 'lodash.merge';
const a = { user: { name: 'Alice', age: 28 }, tags: ['admin'] };
const b = { user: { email: 'a@x.com', age: 29 }, tags: ['editor'] };
// डीप मर्ज: नेस्टेड ऑब्जेक्ट रिकर्सिवली मर्ज, लीफ नोड पर बाद का इनपुट पिछले को ओवरराइड करता है
const deep = merge({}, a, b);
console.log(deep);
// => { user: { name: 'Alice', age: 29, email: 'a@x.com' }, tags: ['admin', 'editor'] }
// शैलो मर्ज: टॉप-लेवल की पूरी तरह ओवरराइड, नेस्टेड में प्रवेश नहीं
const shallow = Object.assign({}, a, b);
console.log(shallow);
// => { user: { email: 'a@x.com', age: 29 }, tags: ['editor'] }mergedeep का उपयोग करके Python में डीप मर्ज
python# pip install mergedeep
from mergedeep import merge
a = {"user": {"name": "Alice", "age": 28}, "tags": ["admin"]}
b = {"user": {"email": "a@x.com", "age": 29}, "tags": ["editor"]}
# डीप मर्ज
result = merge(a, b)
print(result)
# => {'user': {'name': 'Alice', 'age': 29, 'email': 'a@x.com'}, 'tags': ['admin', 'editor']}
# नोट: mergedeep डिफ़ॉल्ट रूप से ऐरे मर्ज करता है, स्ट्रिंग/नंबर ओवरराइड होते हैं
# यदि ऐरे ओवरराइड चाहिए, तो strategy='override' जोड़ेंjq -s का उपयोग करके कमांड लाइन में कई JSON मर्ज करें
bash# कई JSON ऐरे को एक लंबे ऐरे में मर्ज करें
jq -s 'add' a.json b.json c.json
# कई JSON ऑब्जेक्ट को रिकर्सिवली मर्ज करें (jq 1.6+)
jq -s 'reduce .[] as $item ({}; . * $item)' a.json b.json
# शैलो मर्ज: b की टॉप-लेवल की को a पर ओवरराइड करें
jq -s '.[0] * .[1]' a.json b.json
# ऐरे मर्ज के बाद केवल डीडुप्लिकेट id फ़ील्ड रखें
jq -s '[.[].items[]] | unique_by(.id)' a.json b.jsonसामान्य प्रश्न
क्या JSON मर्ज और JSON कॉनकैट एक ही चीज़ हैं?
पूरी तरह नहीं।"कॉनकैट" आमतौर पर स्ट्रिंग को सीधे जोड़ने को संदर्भित करता है, कोई संरचना नहीं; "मर्ज" JSON संरचना के अनुसार रिकर्सिवली कई ऑब्जेक्ट को एक में मिलाना है, की नाम कॉन्फ्लिक्ट को हैंडल करता है। यह टूल बाद वाला — संरचित JSON मर्ज है।
डीप मर्ज और शैलो मर्ज में कैसे चुनें?
शैलो मर्ज: केवल टॉप-लेवल की को प्रोसेस करें, समान नाम की की पूरी तरह रिप्लेस हों, `Object.assign` के समान, सबसे सरल और सीधा। डीप मर्ज: नेस्टेड ऑब्जेक्ट में रिकर्सिवली प्रवेश करें, प्रत्येक लीफ नोड को अलग-अलग मर्ज करें, अधिक स्मार्ट। यदि आपके कई JSON अलग-अलग सब-पाथ पर फ़ील्ड जोड़ रहे हैं (जैसे base.user.name और override.user.email), तो डीप मर्ज का उपयोग करें; यदि पूरे सब-ऑब्जेक्ट को एक बार में रिप्लेस करना चाहते हैं, तो शैलो मर्ज का उपयोग करें।
ऐरे मर्ज करते समय क्रमानुसार या इंडेक्सानुसार?
यह टूल डिफ़ॉल्ट रूप से "कॉनकैट" सिमेंटिक्स का उपयोग करता है: कई ऐरे को एक लंबे ऐरे में जोड़ें और सभी एलिमेंट्स का क्रम बनाए रखें। यदि आपके दो ऐरे की लंबाई समान है और आप सब्सक्रिप्ट द्वारा आइटम-दर-आइटम ओवरराइड करना चाहते हैं, तो कृपया "arrayReplace" पर स्विच करें और मैन्युअल रूप से ऐरे को ऑब्जेक्ट स्ट्रक्चर से लपेटें।
की नाम कॉन्फ्लिक्ट होने पर कौन किसे ओवरराइड करता है?
इनपुट क्रम के अनुसार निर्धारित: बाद में इनपुट किया गया JSON पहले के समान नाम की की को ओवरराइड करता है (शैलो/ऐरे रिप्लेस स्ट्रैटेजी में पूरी तरह ओवरराइड, डीप मर्ज में केवल लीफ नोड ओवरराइड)। यदि "पहले इनपुट किया गया प्राथमिकता" चाहते हैं, तो इनपुट क्रम को उलट दें।
क्या JSON ऐरे मर्ज करने का समर्थन करता है?
हाँ, समर्थन करता है। दो विशिष्ट परिदृश्य: ① कई JSON सभी ऐरे हैं → "arrayConcat" से एक लंबे ऐरे में जोड़ें; ② कई JSON सभी ऑब्जेक्ट हैं, जिनमें कोई फ़ील्ड ऐरे है → "arrayConcat" से कई ऐरे मर्ज करें, या "arrayReplace" से बाद के इनपुट को प्रबल करें।
क्या एक बार में 2 से अधिक JSON मर्ज कर सकते हैं?
हाँ, कर सकते हैं। डिफ़ॉल्ट रूप से 2 इनपुट बॉक्स प्रदान करता है,「+」बटन पर क्लिक करके डायनेमिक रूप से अधिक इनपुट जोड़ सकते हैं; सभी इनपुट ऊपर से नीचे के क्रम में एक के बाद एक मर्ज होते हैं। सैद्धांतिक रूप से संख्या सीमित नहीं, लेकिन ब्राउज़र मेमोरी single खंड के आकार को सीमित करेगी।
मर्ज के बाद की का क्रम कैसे निर्धारित होता है?
डीप मर्ज: पहले JSON की का क्रम प्राथमिकता रखता है, दूसरे JSON की नई की संबंधित स्तर के अंत में जुड़ती हैं। शैलो मर्ज: इनपुट क्रम के अनुसार, पहले JSON की सभी की पहले आती हैं, बाद के JSON की नई की टॉप-लेवल पर जुड़ती हैं; समान नाम की की का क्रम पहले वाला ही बना रहता है।
क्या टूल फ़ील्ड के टाइप को संशोधित करता है?
सक्रिय रूप से टाइप नहीं बदलता। यदि शैलो/ऐरे रिप्लेस स्ट्रैटेजी में दो JSON की समान नाम की की एक ऑब्जेक्ट और दूसरी ऐरे है, तो "बाद में इनपुट किया गया प्रबल" के अनुसार सीधे ओवरराइड किया जाएगा, टाइप रूपांतरण नहीं किया जाएगा। डीप मर्ज केवल "दोनों सामान्य ऑब्जेक्ट हैं" स्थिति में रिकर्शन करता है, अन्य स्थितियों में ओवरराइड से हैंडल किया जाता है।
क्या null वैल्यू संरक्षित रख सकते हैं?
हाँ, रख सकते हैं। JSON में null एक वैध वैल्यू है, यह टूल null को सामान्य लीफ वैल्यू के रूप में हैंडल करता है: शैलो/ऐरे रिप्लेस में बाद का null पिछली वैल्यू को ओवरराइड करेगा; डीप मर्ज में null मिलने पर ओवरराइड नियम के अनुसार हैंडल किया जाता है, विशेष रूप से स्किप नहीं किया जाता।
क्या मर्ज के बाद सांख्यिकी जानकारी आउटपुट होगी?
हाँ, होगी। परिणाम क्षेत्र में मर्ज में भाग लेने वाले JSON खंडों की संख्या और कुल की की संख्या प्रदर्शित होगी, जिससे परिणाम को त्वरित रूप से सत्यापित किया जा सके; विस्तृत फ़ील्ड सूची के लिए कृपया दाईं ओर फ़ॉर्मेटेड आउटपुट देखें।
क्या टूल मेरा JSON सर्वर पर अपलोड करता है?
नहीं। पार्सिंग, मर्ज, फ़ॉर्मेटिंग सभी ब्राउज़र लोकल में पूरी होती है, इनपुट और मध्यवर्ती परिणाम किसी सर्वर पर नहीं भेजे जाते। ऑफ़लाइन उपयोग किया जा सकता है, संवेदनशील जानकारी वाले (जैसे प्रोडक्शन एनवायरनमेंट कॉन्फिग, आंतरिक API रिस्पॉन्स) मल्टी-सोर्स JSON को प्रोसेस करने के लिए उपयुक्त।
JSON फ़ॉर्मेटर और Schema वैलिडेटर के साथ उपयोग करने का सर्वोत्तम क्रम क्या है?
अनुशंसित वर्कफ़्लो: ① JSON रिपेयर (अमान्य JSON को साफ करें) → ② यह टूल JSON मर्ज (मल्टी-सोर्स मर्ज) → ③ JSON फ़ॉर्मेटर (यूनिफाइड इंडेंटेशन) → ④ JSON Schema वैलिडेटर (फाइनल स्ट्रक्चर सत्यापित करें) → ⑤ बाद में कोड जेनरेशन (TypeScript / Java / Go आदि)। आवश्यकतानुसार इनमें से कुछ चरण चुनें।
समस्या निवारण
मर्ज में "Unexpected token" या "Invalid JSON" त्रुटि दिखाई देती है
कारण: कम से कम एक इनपुट बॉक्स में JSON अमान्य है। समाधान: पहले त्रुटि वाले JSON को「JSON रिपेयर」टूल में पेस्ट करके साफ करें (ट्रेलिंग कॉमा, सिंगल कोट्स, बिना कोट्स की की आदि स्वचालित रूप से हैंडल होंगे), फिर इस टूल पर वापस आकर मर्ज करें; या जांचें कि बाहरी ब्रेसिज़ / स्क्वायर ब्रैकेट छूटे तो नहीं हैं।
मर्ज के बाद कुछ फ़ील्ड दिखाई नहीं दे रहे
कारण: शैलो/ऐरे रिप्लेस स्ट्रैटेजी में, समान नाम की की बाद में इनपुट की गई पूरी तरह ओवरराइड हो जाती हैं; डीप मर्ज में, null वैल्यू वाली फ़ील्ड भी पिछले ऑब्जेक्ट को ओवरराइड करती हैं। समाधान: स्ट्रैटेजी को「डीप मर्ज」पर स्विच करके स्तर-दर-स्तर जांचें; यदि निश्चित रूप से बाद का null ओवरराइड कर रहा है, तो बाद के JSON से null फ़ील्ड हटा दें या प्लेसहोल्डर वैल्यू से बदलें।
ऐरे कॉनकैट के बजाय ओवरराइड हो गया
कारण: वर्तमान स्ट्रैटेजी「शैलो मर्ज」या「ऐरे रिप्लेस」है। समाधान: टूलबार ड्रॉपडाउन में「ऐरे कॉनकैट (Array Concat)」पर स्विच करें; या दोनों ऐरे को मैन्युअल रूप से एक में मर्ज करने के बाद फिर मर्ज करें।
डीप मर्ज परिणाम में ऑब्जेक्ट ऐरे बन गया या उल्टा
कारण: दो JSON में समान पथ पर "ऑब्जेक्ट बनाम ऐरे" टाइप असंगत है, डीप मर्ज को टाइप असंगति मिलने पर "बाद का इनपुट प्रबल" लागू होता है। समाधान: दोनों तरफ का टाइप एकीकृत करें (दोनों ऑब्जेक्ट या दोनों ऐरे बनाएं), या स्पष्ट सिमेंटिक्स के लिए शैलो/ऐरे रिप्लेस स्ट्रैटेजी का उपयोग करें।
मर्ज के बाद की का क्रम गड़बड़ा गया
कारण: दूसरे JSON की नई की "इन्सर्शन पोजीशन" के अनुसार पहले JSON के बाद जुड़ती हैं, ब्राउज़र/पार्सर शुद्ध पूर्णांक की को स्वचालित रूप से संख्या क्रम में सॉर्ट करता है। समाधान: सभी इनपुट JSON को पहले「JSON सॉर्ट」टूल से की नाम क्रम एकीकृत करें, फिर मर्ज करें; या परिणाम उपयोग करने से पहले फिर से सॉर्ट करें।
बड़ी फ़ाइलें (10 MB+) मर्ज करते समय फ्रीज हो जाती है
कारण: ब्राउज़र एक बार में कई बड़े टेक्स्ट खंडों का JSON.parse करने में बहुत अधिक मेमोरी का उपयोग करता है। समाधान: प्रत्येक इनपुट को 1-2 MB के भीतर नियंत्रित करें; स्थानीय रूप से Node.js (lodash.merge) या Python (mergedeep) स्क्रिप्ट से बड़ी फ़ाइलें प्रोसेस करें; प्रोसेसिंग पूरी होने के बाद इस टूल से छोटे स्तर पर सत्यापन करें।
शब्दकोश
- JSON Merge
- दो या अधिक JSON ऑब्जेक्ट को निर्दिष्ट नियमों के अनुसार एक नए ऑब्जेक्ट में मिलाने की प्रक्रिया, मुख्य कठिनाई "की नाम कॉन्फ्लिक्ट होने पर रिज़ॉल्यूशन स्ट्रैटेजी" है।
- Deep Merge / डीप मर्ज
- नेस्टेड ऑब्जेक्ट में रिकर्सिवली प्रवेश करके प्रत्येक लीफ नोड को अलग-अलग मर्ज करने की स्ट्रैटेजी; दोनों सामान्य ऑब्जेक्ट होने पर रिकर्शन करें, अन्यथा ओवरराइड से हैंडल करें।
- Shallow Merge / शैलो मर्ज
- केवल टॉप-लेवल की मर्ज करें, समान नाम की की पूरी तरह ओवरराइड हों; JS में `Object.assign({}, a, b)` के समतुल्य।
- Array Concat / ऐरे कॉनकैट
- ऐरे मर्ज स्ट्रैटेजी में से एक: कई ऐरे को एक लंबे ऐरे में जोड़ें और सभी एलिमेंट्स का क्रम बनाए रखें; आमतौर पर API रिस्पॉन्स एग्रीगेशन में उपयोग होती है।
- Array Replace / ऐरे रिप्लेस
- ऐरे मर्ज स्ट्रैटेजी में से एक: समान नाम के ऐरे में बाद में इनपुट किया गया पूरी तरह ओवरराइड करे; आमतौर पर कॉन्फिग ओवरराइड में उपयोग होती है।
- Object.assign
- JavaScript बिल्ट-इन मेथड, सभी एन्युमरेबल स्वयं की प्रॉपर्टी को एक या अधिक सोर्स ऑब्जेक्ट से टारगेट ऑब्जेक्ट में शैलो कॉपी करता है; शैलो मर्ज का वास्तविक मानक कार्यान्वयन।
- lodash.merge
- Lodash लाइब्रेरी द्वारा प्रदान किया गया डीप मर्ज फंक्शन, Node.js इकोसिस्टम में सबसे अधिक उपयोग किया जाने वाला deep merge कार्यान्वयन; ऐरे को मर्ज करता है, ओवरराइड नहीं करता।
- mergedeep (Python)
- Python इकोसिस्टम की डीप मर्ज लाइब्रेरी, pip install mergedeep; strategy पैरामीटर द्वारा ऐरे मर्ज/ओवरराइड व्यवहार को नियंत्रित करने का समर्थन करती है।
- jq -s 'add'
- jq कमांड कई JSON ऐरे को एकल ऐरे में जोड़ती है; कई JSON ऑब्जेक्ट मर्ज करने के लिए `reduce .[] as $item ({}; . * $item)` उपयोग करें।
- BFF (Backend for Frontend)
- माइक्रोसर्विस आर्किटेक्चर में फ्रंटएंड और बैकएंड सर्विसेज के बीच स्थित एग्रीगेशन लेयर; अक्सर कई सर्विसेज के JSON रिस्पॉन्स को एक यूनिफाइड रिस्पॉन्स में मर्ज करने की आवश्यकता होती है, JSON मर्ज का क्लासिक परिदृश्य।
4 JSON मर्ज स्ट्रैटेजी की तुलना
| स्ट्रैटेजी | कार्य क्षेत्र | ऐरे हैंडलिंग | विशिष्ट परिदृश्य |
|---|---|---|---|
| डीप मर्ज (Deep) | सभी नेस्टेड स्तरों पर रिकर्सिव | चयनित arrayConcat/arrayReplace के अनुसार | बहु-एनवायरनमेंट कॉन्फिग लेयरिंग, i18n डिक्शनरी मर्ज |
| शैलो मर्ज (Shallow) | केवल टॉप-लेवल मर्ज | पूरी तरह ओवरराइड | Object.assign शैली का सरल ओवरराइड |
| ऐरे कॉनकैट (Array Concat) | टॉप-लेवल | नए ऐरे में जोड़ना | पेजिनेटेड API एग्रीगेशन, mock डेटा मर्ज |
| ऐरे रिप्लेस (Array Replace) | टॉप-लेवल | बाद का इनपुट प्रबल | Feature Flag कॉन्फिग ओवरराइड |
सामान्य JSON मर्ज कार्यान्वयन तुलना तालिका
| कार्यान्वयन/लाइब्रेरी | भाषा | डिफ़ॉल्ट व्यवहार | नोट |
|---|---|---|---|
| Object.assign | JavaScript | शैलो मर्ज | ES2015 स्टैंडर्ड लाइब्रेरी; ES2017 के बाद `Object.assign({}, a, b)` उपलब्ध |
| { ...a, ...b } | JavaScript | शैलो मर्ज | स्प्रेड ऑपरेटर, सिंटैक्स अधिक संक्षिप्त |
| lodash.merge | JavaScript | डीप मर्ज | ऐरे मर्ज होता है ओवरराइड नहीं, npm install lodash.merge |
| mergedeep | Python | डीप मर्ज | strategy='override' से ऐरे मर्ज को ओवरराइड में बदलें |
| deepmerge (Python) | Python | डीप मर्ज | एक अन्य लोकप्रिय कार्यान्वयन, pip install deepmerge |
| jq -s 'add' | Shell | ऐरे सम इफ़ेक्ट | ऑब्जेक्ट मर्ज के लिए `reduce .[] as $i ({}; . * $i)` का उपयोग करें |
Authoritative References
- JSON कंप्रेस करें
- CSV से JSON
- JSON से CSV
- JSON Diff
- JSON Escape / Unescape
- JSON फ़्लैटन
- JSON फ़ॉर्मेटर
- JSON जनरेटर
- JSONPath क्वेरी
- JSON मर्ज
- JSON मरम्मत
- JSON Schema Validator
- JSON सॉर्ट
- JSON Stringify
- JSON से HTML
- JSON से Java
- JSON से Markdown
- JSON से SQL
- JSON से TOML
- JSON से TypeScript
- XML को JSON में बदलें
- JSON को XML में बदलें
- YAML से JSON
- JSON → YAML
- JSON से Go
- JSON से Rust
- JSON to Swift
- JSON से C#
- JSON से C++
- JSON से PHP
- JSON से Python