यदि आप आकार से सीमित नहीं हैं, तो XML एक अच्छा विकल्प है और यह मूल रूप से (जैसे .NET और फ्लैश में) समर्थित है, लेकिन यदि आप एक पतला प्रारूप चाहते हैं, तो आप अपना स्वयं का प्रारूप और पार्सर काफी आसान बना सकते हैं। मैं सामान्य रूप से 1 वर्ण का उपयोग करता हूं। प्रत्येक वस्तु को अलग करने के लिए अल्पविराम। स्ट्रिंग को डीकोड करने के लिए अल्पविराम पर एक विभाजन करें। अब प्रत्येक ऑब्जेक्ट को अलग-अलग गुणों की आवश्यकता होती है, इसलिए उन्हें एक अलग चरित्र जैसे कि सेमी कोलोन के साथ अलग करें, और प्रॉपर्टी वैल्स से संपत्ति के नामों को अलग करने के लिए किसी अन्य वर्ण का उपयोग करें, जैसे। बृहदान्त्र। इस प्रकार सभी को बिना स्ट्रिंग के आसानी से रीजेक्स के बिना आसानी से डिकोड किया जा सकता है। यहाँ एक उदाहरण है:
id:1;x:5;y:45.2;angle:45,id:28;x:56;y:89;angle:12;health:78
आप संपत्ति के नाम को 1 वर्ण से नीचे रखकर और भी अधिक स्थान बचा सकते हैं, जैसे स्वास्थ्य के लिए ज। उदाहरण के लिए।
i:1;x:5;y:45.2;a:45,i:28;x:56;y:89;a:12;h:78
JSON विकल्प की तुलना करें:
{"o":[{"i":1, "x":5, "y":45.2, "a":45}, {"i":28, "x":56, "y":89, "a":12, "h":78}]}
इसके अलावा, यदि आप अपने नंबरों का आकार कम करना चाहते हैं, तो आप मुद्रण योग्य UTF16 वर्णों के पूर्ण सेट का उपयोग करके उन्हें सांकेतिक शब्दों में बदलना कर सकते हैं। इस धागे ने मुझे स्टैक ओवरफ्लो पर एक सवाल पूछने के लिए प्रेरित किया कि आप एक ऑन-स्क्रीन चरित्र में कितना डेटा पैक कर सकते हैं । उत्तर पूर्णांक के लिए 40,000 से अधिक मानों पर लगता है, अगर आपको दिमाग, कांजी और शतरंज के टुकड़े होने का मन नहीं है: somewhere
एक और आकार में कमी प्राप्त करने के लिए, आप पढ़ सकते हैं / लिखने के आदेश का उपयोग यह निर्धारित करने के लिए कर सकते हैं कि कौन सा मूल्य है, इसलिए पहले दो वर्ण आईडी का प्रतिनिधित्व करते हैं, अगले दो x स्थिति हैं, अगले दो y, फिर कोण, फिर स्वास्थ्य , इत्यादि:
F5DGP@%&002DFTK#OP1F
अन्य उदाहरणों के समान सभी जानकारी संग्रहीत कर सकता है।
टाइल ग्रिड को एक स्ट्रिंग के रूप में संग्रहीत किया जा सकता है, जिसमें प्रत्येक पात्र एक अलग प्रकार की टाइल का प्रतिनिधित्व करता है जैसे:
i789pog5h3kl
जहां मेरा मतलब लावा, 9 मतलब घास आदि हो सकता है