JSON फ़्लैटन
नेस्टेड JSON को डिलीमीटर वाली फ्लैट कुंजियों में बदलें और ज़रूरत पड़ने पर मूल संरचना वापस पाएं। पूरा प्रोसेस सुरक्षित रूप से आपके ब्राउज़र में चलता है।
संबंधित सुझाव
उपयोग के मामले
- MongoDB query और update: डॉट पथों को हाथ से लिखने के बजाय तैयार फ्लैट कुंजियों का उपयोग करें
- CSV और Excel एक्सपोर्ट: बहु-स्तरीय JSON को फ्लैट कॉलम में बदलें ताकि टेबल-आधारित विश्लेषण आसान हो
- Elasticsearch तैयारी: गहराई वाले दस्तावेज़ों को इंडेक्सिंग से पहले सरल बनाएं
- API डीबगिंग: request और response फ़ील्ड को एक ही फ्लैट दृश्य में तुलना करें
- कॉन्फ़िग और पर्यावरण चर प्रीप्रोसेसिंग: package.json या settings.json जैसे नेस्टेड सेटअप को फैलाएं
उपयोग कैसे करें
- JSON को बाईं ओर वाले बॉक्स में पेस्ट करें या लोकल .json फ़ाइल अपलोड करें
- flatten या unflatten मोड चुनें, फिर डिलीमीटर, ऐरे व्यवहार और अधिकतम गहराई सेट करें
- दाईं ओर परिणाम के साथ कुंजी संख्या और गहराई आँकड़े देखें
- ज़रूरत हो तो परिणाम कॉपी करें या .json फ़ाइल के रूप में डाउनलोड करें
विशेषताएं
- दो-तरफ़ा रूपांतरण: flatten और unflatten दोनों मोड उपलब्ध हैं, इसलिए आप नेस्टेड और फ्लैट संरचना के बीच आसानी से जा सकते हैं
- कस्टम डिलीमीटर: डॉट, अंडरस्कोर, स्लैश या कोई और चिह्न चुनकर आउटपुट को अपने सिस्टम के अनुसार ढालें
- लचीला ऐरे हैंडलिंग: ऐरे को इंडेक्स वाली कुंजियों में फैलाएं या पूरे ऐरे को एक ही मान के रूप में रखें
- अधिकतम गहराई सीमा: ज़रूरत के स्तर पर विस्तार रोकें ताकि बहुत लंबी कुंजियां न बनें
- लोकल प्रोसेसिंग: JSON डेटा किसी सर्वर पर अपलोड नहीं होता, सब कुछ ब्राउज़र में ही होता है
- सुविधाजनक वर्कफ़्लो: .json अपलोड, सैंपल डेटा, कॉपी और डाउनलोड एक ही जगह उपलब्ध हैं
कोड उदाहरण
JavaScript में JSON फ़्लैटन करना
javascriptfunction flatten(obj, prefix = '', sep = '.') {
return Object.entries(obj).reduce((acc, [key, value]) => {
const newKey = prefix ? `${prefix}${sep}${key}` : key;
if (value !== null && typeof value === 'object' && !Array.isArray(value)) {
Object.assign(acc, flatten(value, newKey, sep));
} else {
acc[newKey] = value;
}
return acc;
}, {});
}
flatten({ user: { name: 'Alice', contact: { email: 'a@x.com' } } });
// => { 'user.name': 'Alice', 'user.contact.email': 'a@x.com' }Python में JSON फ़्लैटन करना
pythondef flatten(obj, parent_key='', sep='.'):
items = {}
for key, value in obj.items():
new_key = f"{parent_key}{sep}{key}" if parent_key else key
if isinstance(value, dict):
items.update(flatten(value, new_key, sep))
else:
items[new_key] = value
return items
import json
print(json.dumps(flatten({'user': {'name': 'Alice'}}), indent=2))
# => {"user.name": "Alice"}कमांड लाइन पर jq से JSON फ़्लैटन करना
bash# नेस्टेड JSON को डॉट-सेपरेटेड फ्लैट स्ट्रक्चर में बदलें
jq '[paths(scalars) as $p | {"key": $p | join("."), "value": getpath($p)}] | from_entries' data.json
# फ्लैट JSON को फिर से नेस्टेड संरचना में लौटाएं
# jq 1.7+ के साथ बाहरी फ़िल्टर या इस टूल का unflatten मोड इस्तेमाल करेंसामान्य प्रश्न
JSON फ़्लैटनिंग क्या है और यह कब काम आती है?
JSON फ़्लैटनिंग नेस्टेड ऑब्जेक्ट और ऐरे को एक-स्तरीय key-value जोड़ों में बदलती है। यह MongoDB डॉट क्वेरी, CSV एक्सपोर्ट, Elasticsearch इंडेक्सिंग, पर्यावरण चर और API फ़ील्ड तुलना में उपयोगी होती है।
क्या फ़्लैटन किया गया JSON फिर से मूल संरचना में बदला जा सकता है?
हाँ। यदि आप वही डिलीमीटर इस्तेमाल करें, तो टूल फ्लैट कुंजियों से फिर से ऑब्जेक्ट और ऐरे बना सकता है। लगातार संख्यात्मक कुंजियां अपने आप ऐरे के रूप में पहचानी जाती हैं।
क्या मैं डिलीमीटर और ऐरे हैंडलिंग बदल सकता हूँ?
हाँ। आप डॉट, अंडरस्कोर, स्लैश, डबल अंडरस्कोर या कस्टम डिलीमीटर चुन सकते हैं। ऐरे को `items.0`, `items.1` की तरह फैलाया जा सकता है या पूरा ऐरे जस का तस रखा जा सकता है।
क्या ऑनलाइन JSON प्रोसेस करना सुरक्षित है?
हाँ। सारी पार्सिंग और रूपांतरण प्रक्रिया आपके लोकल ब्राउज़र में होती है, इसलिए JSON डेटा किसी बाहरी सर्वर पर नहीं भेजा जाता।
MongoDB में इसका उपयोग कैसे होता है?
MongoDB नेस्टेड फ़ील्ड तक पहुँचने के लिए डॉट नोटेशन का उपयोग करता है। इस टूल से बनी कुंजियों को आप सीधे `find`, `update` और aggregation pipeline में इस्तेमाल कर सकते हैं।
क्या परिणाम CSV और Excel के लिए उपयुक्त है?
हाँ। फ़्लैटन होने के बाद सारे फ़ील्ड एक ही स्तर पर आ जाते हैं, इसलिए JSON to CSV, Excel या Pandas में उन्हें कॉलम के रूप में इस्तेमाल करना आसान हो जाता है।
अगर मूल कुंजी में पहले से डॉट या वही डिलीमीटर हो तो क्या होगा?
तब संरचना वापस बनाते समय स्तरों का टकराव हो सकता है। बेहतर है कि आप दूसरा डिलीमीटर चुनें या ऐसे कुंजियों को पहले escape कर दें।
क्या यह टूल बहुत बड़े JSON को संभाल सकता है?
सामान्य API response और कॉन्फ़िग फ़ाइलें ठीक चलती हैं। बहुत बड़े JSON के लिए डेटा को हिस्सों में बाँटना या `jq` जैसे लोकल CLI का उपयोग करना बेहतर रहता है।
समस्या निवारण
टूल कहता है कि इनपुट वैध JSON नहीं है
आमतौर पर इसका कारण गलत सिंटैक्स होता है, जैसे missing quotes, extra comma, बंद न हुआ bracket या True/False जैसी वैल्यू। पहले JSON formatter से जाँच लें।
unflatten के बाद संरचना गलत बन रही है
संभव है कि मूल कुंजियों में वही डिलीमीटर पहले से मौजूद हो। कोई दूसरा डिलीमीटर चुनें या टकराने वाली कुंजियों को पहले escape करें।
ऐरे फैलाने पर CSV बहुत चौड़ा हो जाता है
इंडेक्स के आधार पर ऐरे फैलाने से बहुत सारे अतिरिक्त फ़ील्ड बनते हैं। यदि आपको अधिक कॉम्पैक्ट टेबल चाहिए, तो पूरे ऐरे को एक मान के रूप में रखें।
बड़ा JSON ब्राउज़र को धीमा कर देता है
बहुत बड़े JSON फ़ाइलें अधिक मेमोरी लेती हैं। डेटा को हिस्सों में बाँटें या `jq`, Python या Node.js जैसे लोकल टूल इस्तेमाल करें।
- 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