इस लेख में
JSON फ़्लैटनिंग क्या है?
JSON फ़्लैटनिंग एक गहरे नेस्टेड JSON ऑब्जेक्ट को डॉट-नोटेशन पथों का उपयोग करके एक सपाट की-वैल्यू संरचना में बदल देती है। मूल ऑब्जेक्ट के हर लीफ़ मान को 'user.address.city' जैसा एक अद्वितीय पथ मिलता है जो पदानुक्रम में उसकी स्थिति बताता है।
उल्टी क्रिया, यानी अनफ़्लैटनिंग, डॉट-नोटेशन पथों को लेकर मूल नेस्टेड संरचना को फिर से बना देती है। एक साथ, फ़्लैटन और अनफ़्लैटन आपको बिना कोई डेटा खोए JSON को नेस्टेड और सपाट रूपों के बीच रूपांतरित करने की सुविधा देते हैं।
JSON फ़्लैटनिंग कैसे काम करती है
फ़्लैटनिंग एल्गोरिदम JSON ट्री को पुनरावर्ती रूप से पार करता है, और नेस्टेड ऑब्जेक्ट व एरे में उतरते हुए एक पथ स्ट्रिंग बनाता जाता है।
- पुनरावर्ती ट्रैवर्सल — एल्गोरिदम ऑब्जेक्ट की हर की को पार करता है, और हर की को एक बढ़ते डॉट-विभाजित पथ में जोड़ता जाता है
- एरे इंडेक्स नोटेशन — फ़्लैट किए गए आउटपुट में अपनी स्थिति सुरक्षित रखने के लिए एरे के तत्व 'items[0].name' जैसे ब्रैकेट नोटेशन का उपयोग करते हैं
- लीफ़ संग्रह — जब कोई प्रिमिटिव मान (स्ट्रिंग, संख्या, बूलियन, null) आता है, तो पूरा पथ और मान एक सपाट की-वैल्यू जोड़ी के रूप में संग्रहीत हो जाता है
निःशुल्क आज़माएँ — कोई साइनअप आवश्यक नहीं
JSON फ़्लैटन या अनफ़्लैटन करें →JSON फ़्लैटनिंग का उपयोग कब करें
फ़्लैट किया गया JSON तब उपयोगी होता है जब आपको केवल-सपाट सिस्टम में नेस्टेड डेटा के साथ काम करना हो या जटिल संरचनाओं की तुलना करनी हो।
- डेटाबेस स्टोरेज — बिना स्कीमा बदले नेस्टेड कॉन्फ़िग या मेटाडेटा को सपाट की-वैल्यू टेबल में संग्रहीत करें
- CSV एक्सपोर्ट — नेस्टेड JSON रिकॉर्ड को स्प्रेडशीट इम्पोर्ट या तालिका प्रदर्शन के लिए उपयुक्त सपाट पंक्तियों में बदलें
- कॉन्फ़िग तुलना — दो कॉन्फ़िग फ़ाइलों को फ़्लैट करें और यह जल्दी पता लगाने के लिए सपाट कीज़ का डिफ़ करें कि कौन-से नेस्टेड मान बदले
अक्सर पूछे जाने वाले सवाल
क्या फ़्लैटनिंग डेटा प्रकारों को सुरक्षित रखती है?
हाँ। सभी प्रिमिटिव मान (स्ट्रिंग, संख्याएँ, बूलियन, null) ठीक वैसे ही सुरक्षित रहते हैं। एरे 'items[0]' जैसे इंडेक्स्ड पथ बन जाते हैं, और नेस्टेड ऑब्जेक्ट डॉट-विभाजित पथ बन जाते हैं। अनफ़्लैटनिंग पथों से मूल प्रकारों को फिर से बना देती है।
बहुत गहरी नेस्टिंग के साथ क्या होता है?
फ़्लैटनर किसी भी नेस्टिंग गहराई को संभालता है। बहुत गहरे ऑब्जेक्ट लंबे पथ स्ट्रिंग तैयार करते हैं, लेकिन इसकी कोई कार्यात्मक सीमा नहीं है। यदि प्रदर्शन मायने रखता हो, तो अधिकांश कार्यान्वयन हज़ारों नेस्टिंग स्तरों पर कॉल स्टैक समस्याओं से बचने के लिए पुनरावृत्तीय तरीकों का उपयोग करते हैं।
क्या मैं डुप्लिकेट कीज़ वाले JSON को फ़्लैट कर सकता हूँ?
JSON विनिर्देश के अनुसार एक ही स्तर पर डुप्लिकेट कीज़ की अनुमति नहीं देता। यदि आपका पार्सर उन्हें स्वीकार करता है, तो पार्सिंग के दौरान हर की के लिए केवल अंतिम मान ही बचता है। फ़्लैटनर पार्स किए गए ऑब्जेक्ट पर काम करता है, इसलिए फ़्लैटनिंग शुरू होने से पहले ही डुप्लिकेट हल हो चुके होते हैं।