JSON
JSON Path Extractor / Flatten
नेस्टेड JSON को "पाथ: वैल्यू" की फ़्लैट लिस्ट में बदलना (Flatten) और वापस नेस्टेड स्ट्रक्चर में जोड़ना (Unflatten)। पाथ नोटेशन वही है जो JSONPath/JSON Diff में है: store.book[0].price।
Deeply nested JSON is hard to compare or iterate over programmatically. Flatten unrolls such a structure into a flat list of "path: value" pairs (e.g. store.book[0].price: 12.99), and Unflatten rebuilds it.
How to use it
- Flatten: paste nested JSON and get a flat list of every leaf value with its full path.
- Unflatten: paste a list of "path: value" pairs to rebuild a nested JSON structure from it.
- The path notation matches this site's JSONPath and JSON Diff tools — items[0].name for array elements.
Common uses
- Turning a deeply nested API response into a flat list for import into a spreadsheet or analytics system.
- Building a translation dictionary or config back into nested JSON from flat keys (form.errors.email).
- Quickly finding every value on a given topic in a very large JSON document via a flat path list.
Things to keep in mind
Array index notation varies between libraries — this tool uses items[0], though some write items.0 without brackets.
Unflatten requires that paths don't conflict with each other (e.g. one and one.two at the same time) — otherwise the structure can't be unambiguously rebuilt.
इस टूल के बारे में लेख: JSON Flatten: नेस्टेड संरचना को समतल सूची में बदलना
अक्सर पूछे जाने वाले प्रश्न
JSON ऑब्जेक्ट को "फ़्लैटन" करना वास्तव में क्या करता है?
यह नेस्टेड ऑब्जेक्ट्स और ऐरे को डॉट या ब्रैकेट नोटेशन कीज़ (जैसे user.address.city या items[0].id) वाले सिंगल-लेवल ऑब्जेक्ट में बदल देता है, जिससे गहराई से नेस्टेड डेटा को फ्लैट टेबल के रूप में पढ़ना या स्प्रेडशीट टूल्स में इम्पोर्ट करना आसान हो जाता है।
क्या फ़्लैटन किए गए JSON को वापस उसके मूल नेस्टेड रूप में बदला जा सकता है?
हां, जब तक की नोटेशन सुसंगत है — प्रक्रिया को उलटने से हर की पाथ को वापस ऑब्जेक्ट्स और ऐरे में विभाजित करके मूल नेस्टेड संरचना पुनर्निर्मित होती है।
क्या फ़्लैटनिंग मूल JSON से कोई जानकारी खो देती है?
नहीं। हर वैल्यू सुरक्षित रहती है; केवल संरचना बदलती है, क्योंकि हर अनूठा नेस्टेड पाथ अपनी खुद की फ्लैट की बन जाता है।
अगर असली कुंजी में खुद एक डॉट हो तो क्या होगा?
यह एक अस्पष्ट स्थिति है: पाथ user.name का मतलब नेस्टेड ऑब्जेक्ट {"user": {"name": ...}} भी हो सकता है और फ्लैट कुंजी {"user.name": ...} भी। डॉट नोटेशन फ़ॉर्मेट इनमें फ़र्क़ नहीं कर पाता, इसलिए ऐसी कुंजियों से बचना या उन्हें अलग से हैंडल करना बेहतर है।
क्या सभी ऐसे टूल्स में पाथ का फ़ॉर्मेट एक जैसा होता है?
नहीं। ऑब्जेक्ट के लिए डॉट नोटेशन (user.name) लगभग हर जगह आम है, लेकिन ऐरे इंडेक्स लिखने का तरीक़ा अलग-अलग होता है: यहां items[0] इस्तेमाल किया गया है, जबकि कुछ लाइब्रेरी बिना ब्रैकेट के items.0 लिखती हैं।