JSON सॉर्ट

JSON object की कुंजियों और array के एलिमेंट्स को व्यवस्थित करें ताकि डेटा पढ़ने, तुलना करने और स्थिर रूप में सहेजने में आसान हो। पूरा काम ब्राउज़र में लोकल होता है।

संबंधित सुझाव

JSON सॉर्ट क्या है?

JSON सॉर्ट का मतलब object की कुंजियों को एक तय क्रम में फिर से सजाना या array एलिमेंट्स को उनके मान के आधार पर क्रमबद्ध करना है। इससे डेटा या डेटा टाइप नहीं बदलते, केवल उनका क्रम बदलता है।

ऐसी normalization Git Diff का शोर कम करने, config files को एक जैसा रखने, JSON Diff से पहले डेटा तैयार करने और API cache keys को स्थिर बनाने में मदद करती है। एक जैसा JSON केवल key order अलग होने की वजह से बदला हुआ नहीं दिखता।

GeekFormat का टूल दो मोड देता है: key sort और array sort। इसके साथ ascending/descending और recursive विकल्प भी मिलते हैं। आपका डेटा सर्वर पर नहीं भेजा जाता।

उपयोग के मामले

  • package.json, tsconfig.json और अन्य config files में keys का क्रम एक जैसा करना
  • दो JSON की तुलना से पहले दोनों को sort करके केवल order की वजह से आने वाले false diff हटाना
  • API responses में key order स्थिर करके cache, hash और snapshot को consistent बनाना
  • बड़े JSON files को code review या config audit से पहले व्यवस्थित करना
  • merge या repair के बाद validation से पहले output तैयार करना

उपयोग कैसे करें

  1. JSON को बाएँ पैनल में पेस्ट करें, sample लोड करें या .json file आयात करें
  2. Key sort या array sort mode चुनें, फिर दिशा और recursive विकल्प सेट करें
  3. Sort चलाकर दाएँ पैनल में परिणाम देखें
  4. परिणाम कॉपी करें या sorted.json के रूप में डाउनलोड करें

विशेषताएं

  • दो मोड: object keys या array elements दोनों को सॉर्ट कर सकते हैं
  • recursive समर्थन: nested objects के अंदर तक क्रम ठीक किया जाता है
  • ascending और descending: क्रम की दिशा तुरंत बदली जा सकती है
  • संरचना सुरक्षित: values और data types ज्यों के त्यों रहते हैं
  • लोकल प्रोसेसिंग: JSON ब्राउज़र में ही प्रोसेस होता है, सर्वर पर नहीं जाता
  • आसान अगला कदम: परिणाम को JSON Diff, Repair या Format में तुरंत इस्तेमाल कर सकते हैं

कोड उदाहरण

JavaScript से keys को recursive तरीके से sort करना

javascript
// Keys को recursive तरीके से sort करके नया object लौटाता है
function sortKeysDeep(value) {
  if (Array.isArray(value)) return value.map(sortKeysDeep);
  if (value !== null && typeof value === 'object') {
    return Object.keys(value)
      .sort((a, b) => a.localeCompare(b))
      .reduce((acc, k) => {
        acc[k] = sortKeysDeep(value[k]);
        return acc;
      }, {});
  }
  return value;
}

const data = { zoo: { animals: ['zebra', 'elephant'] }, alpha: 1, beta: 2 };
console.log(JSON.stringify(sortKeysDeep(data), null, 2));

Python में sort_keys=True का उपयोग

python
import json

data = {"zoo": {"animals": ["zebra", "elephant"]}, "alpha": 1, "beta": 2}

print(json.dumps(data, indent=2, sort_keys=True, ensure_ascii=False))

arr = [3, 1, 4, 1, 5]
print(sorted(arr))
print(sorted(arr, reverse=True))

jq से JSON sort करना

bash
# Keys को recursive तरीके से sort करें
jq -S '.' data.json

# Array elements sort करें
jq 'sort' data.json

# किसी specific field के आधार पर sort करें
jq 'sort_by(.age)' data.json

सामान्य प्रश्न

JSON सॉर्ट और JSON format में क्या अंतर है?

Format केवल indentation और line breaks बदलता है, जबकि JSON सॉर्ट keys और array elements का क्रम बदलता है। दोनों साथ उपयोग करने से JSON साफ और व्यवस्थित दिखता है।

क्या सॉर्ट करने के बाद JSON का आकार बढ़ेगा?

लगभग नहीं। डेटा की मात्रा वही रहती है, केवल fields और elements का क्रम बदलता है।

क्या values या data types बदल जाते हैं?

नहीं। `null`, numbers, strings, booleans, objects और arrays सब वैसे ही रहते हैं।

recursive sort का मतलब क्या है?

इसका मतलब है कि सॉर्टिंग सिर्फ ऊपर वाले object पर नहीं बल्कि अंदर के nested objects पर भी लागू होती है। Config और API responses के लिए इसे चालू रखना अक्सर बेहतर होता है।

integer जैसे keys ऊपर क्यों आ जाते हैं?

JavaScript `0`, `1`, `2` जैसी keys को numeric order में हैंडल करता है। यह platform behavior है, टूल की गलती नहीं।

array के अंदर objects कैसे सॉर्ट होते हैं?

Array mode generic comparison का इस्तेमाल करता है। अगर `price` या `date` जैसे किसी specific field पर sort चाहिए, तो `sort_by(.field)` बेहतर है।

क्या मेरा JSON सर्वर पर अपलोड होता है?

नहीं। सारी processing ब्राउज़र के भीतर ही होती है, इसलिए संवेदनशील डेटा के लिए भी उपयुक्त है।

JSON Diff या Schema के साथ इसे किस क्रम में चलाना चाहिए?

आम तौर पर JSON Repair → JSON सॉर्ट → JSON Diff / Format → Schema validation सबसे सुविधाजनक क्रम है। पहले order स्थिर करने से diff noise कम हो जाता है।

समस्या निवारण

Invalid JSON error दिख रही है

Input JSON में syntax समस्या हो सकती है। पहले JSON Repair या JSON Format से उसे जाँचें।

संख्या जैसी keys हमेशा ऊपर आ जाती हैं

JavaScript integer-जैसी keys को numeric order में हैंडल करता है। यह platform behavior है, tool bug नहीं।

Array के अंदर objects मनचाहे क्रम में नहीं आ रहे

Array mode business field का अर्थ नहीं समझता और generic comparison करता है। `price` या `date` के लिए `sort_by` इस्तेमाल करें।

Nested objects sort नहीं हो रहे

देखें कि recursive विकल्प चालू है या नहीं। बंद होने पर केवल top level sort होगा।

बहुत बड़ा JSON ब्राउज़र को धीमा कर देता है

बड़ी files को पहले `jq`, Python या Node.js से लोकल प्रोसेस करें, फिर परिणाम को ब्राउज़र में verify करें।

शब्दकोश

JSON Sort
ऐसा ऑपरेशन जो केवल कुंजियों या array elements का क्रम बदलता है, value और data type को नहीं।
Recursive Sort
सॉर्टिंग जो सिर्फ ऊपर वाले level पर नहीं, बल्कि अंदर के सभी nested objects पर भी लागू होती है।
Ascending / Descending
Ascending का मतलब A-Z या छोटे से बड़े क्रम में, descending इसका उल्टा है।
Canonical Form
JSON का normalized रूप, जो comparison, cache और hash के लिए सुविधाजनक होता है।
Git Diff Noise
वह extra diff जो केवल ordering या formatting की वजह से दिखता है, असली data change की वजह से नहीं।
localeCompare
JavaScript का string comparison API, जिसे key names की dictionary order sorting के लिए अक्सर उपयोग किया जाता है।

वे स्थितियाँ जहाँ JSON सॉर्ट उपयोगी है

स्थितिकिसके आधार परअनुशंसित तरीकाटूल
Git Diff शोर कम करनाobject keysrecursive key sortयह टूल / jq -S
config normalizationobject keysascending + recursiveयह टूल
API cache key स्थिर करनाobject keysपहले sort फिर stringifyयह टूल / code example
array data जल्दी व्यवस्थित करनाarray elementsarray modeयह टूल

JSON sort, diff और merge का अंतर

टूलउद्देश्यक्या व्यवस्थित करता हैअगला कदम
JSON सॉर्टक्रम एक जैसा करनाkeys / arraysdiff, format
JSON Diffअंतर तुलनानहींसॉर्ट के बाद बेहतर
JSON Mergeकई स्रोत जोड़नाज़रूरत हो तो merge के बादmerge के बाद sort
JSON Repairगलत JSON सुधारनानहींrepair के बाद sort

Authoritative References