इसे करने के तरीके (हैक) हैं ... लेकिन आपको ऐसा नहीं करना चाहिए।
JSON में, एक ऑब्जेक्ट इस प्रकार परिभाषित किया गया है:
ऑब्जेक्ट नाम / मान जोड़े का एक अनियंत्रित सेट है।
Http://json.org देखें ।
JSON के अधिकांश कार्यान्वयन किसी ऑब्जेक्ट के नाम / मूल्य जोड़े के आदेश को संरक्षित करने का कोई प्रयास नहीं करते हैं, क्योंकि यह (परिभाषा के अनुसार) महत्वपूर्ण नहीं है।
यदि आप चाहते हैं कि ऑर्डर संरक्षित हो, तो आपको अपनी डेटा संरचना को फिर से परिभाषित करने की आवश्यकता है; जैसे
{
"items":
[
[
{"WR":"qwe"},
{"QU":"asd"},
{"QA":"end"},
{"WO":"hasd"},
{"NO":"qwer"}
],
]
}
या अधिक बस:
{
"items":
[
{"WR":"qwe"},
{"QU":"asd"},
{"QA":"end"},
{"WO":"hasd"},
{"NO":"qwer"}
]
}
जाँच करना
जानकारी के लिए धन्यवाद, लेकिन मेरे पास JSON का उपयोग करने के अलावा और कोई विकल्प नहीं है और मेरे आवेदन में JSON ऑब्जेक्ट की परिभाषा की परवाह किए बिना कुंजी के क्रम को बनाए रखने की आवश्यकता है ... मुझे JSON फ़ाइल का प्रारूप बदलने की अनुमति नहीं है भी...
आपको उस फ़ाइल संरचना को डिज़ाइन करने वाले के साथ एक कठिन वार्तालाप करने की आवश्यकता है और आपको इसे बदलने नहीं देगा। यह है / वे सादे गलत हैं। आपको उन्हें मनाने की जरूरत है।
यदि वे वास्तव में आपको इसे बदलने नहीं देंगे:
- आपको इसे JSON नहीं कहने पर जोर देना चाहिए ... 'क्योंकि यह नहीं है।
- आपको यह इंगित करना चाहिए कि आपको इस "नहीं JSON" प्रारूप को संभालने के लिए विशेष रूप से कोड लिखना / संशोधित करना होगा ... जब तक कि आप कुछ JSON कार्यान्वयन नहीं पा सकते हैं जो आदेश को संरक्षित करता है। यदि वे एक भुगतान करने वाले ग्राहक हैं, तो सुनिश्चित करें कि वे इस अतिरिक्त काम के लिए भुगतान करते हैं जो आपको करना है।
- आपको यह इंगित करना चाहिए कि यदि "JSON नहीं" को किसी अन्य उपकरण द्वारा उपयोग करने की आवश्यकता है, तो यह समस्याग्रस्त होने वाला है। दरअसल, यह समस्या बार-बार आएगी ...
इस तरह की बात वास्तव में बुरी है। एक ओर, आपका सॉफ़्टवेयर एक अच्छी तरह से स्थापित / लंबे समय तक चलने वाले विनिर्देश का उल्लंघन कर रहा होगा, जिसे इंटरऑपरेबिलिटी को बढ़ावा देने के लिए डिज़ाइन किया गया है। दूसरी ओर, नाइट-विट्स जिन्होंने इस लंगड़े को डिज़ाइन किया है (JSON नहीं!) फ़ाइल प्रारूप संभवतः अन्य लोगों के सिस्टम आदि को बंद कर रहे हैं 'क्योंकि सिस्टम उनकी बकवास का सामना नहीं कर सकता है ।
अपडेट करें
यह भी पढ़ने योग्य है कि JSON RFC (RFC 7159) इस विषय पर क्या कहता है। यहाँ कुछ अंश दिए गए हैं:
RFC 4627 के प्रकाशन के बाद के वर्षों में, JSON ने बहुत व्यापक उपयोग पाया है। इस अनुभव से कुछ प्रतिमानों का पता चला है, जो इसकी विशिष्टताओं द्वारा अनुमति देते समय, अंतर-समस्या का कारण बने हैं।
जावास्क्रिप्ट ऑब्जेक्ट नोटेशन (JSON) संरचित डेटा के क्रमांकन के लिए एक पाठ प्रारूप है। ...
JSON चार आदिम प्रकारों (तारों, संख्याओं, बूलियन और नल) और दो संरचित प्रकारों (वस्तुओं और गिरफ्तारियों) का प्रतिनिधित्व कर सकता है।
एक वस्तु शून्य या अधिक नाम / मूल्य जोड़े का एक अनियोजित संग्रह है, जहां एक नाम एक स्ट्रिंग है और एक मूल्य एक स्ट्रिंग, संख्या, बूलियन, अशक्त, वस्तु या सरणी है।
JSON पार्सिंग पुस्तकालयों में यह देखा गया है कि वे कॉलिंग सॉफ्टवेयर में दिखाई देने वाली वस्तु सदस्यों के क्रम को बनाते हैं या नहीं। कार्यान्वयन जिनका व्यवहार सदस्य के आदेश पर निर्भर नहीं करता है, इस अर्थ में अंतर होगा कि वे इन अंतरों से प्रभावित नहीं होंगे।