XML adalah pilihan yang baik jika Anda tidak dibatasi oleh ukuran dan didukung secara native (misalnya dalam. NET dan Flash) tetapi jika Anda menginginkan format yang ramping, Anda dapat membuat format dan parser Anda sendiri dengan mudah. Saya biasanya menggunakan 1 karakter misalnya. koma untuk memisahkan setiap objek. Untuk mendekode string, lakukan split pada koma. Sekarang setiap objek membutuhkan properti yang berbeda sehingga pisahkan dengan karakter yang berbeda, misalnya titik koma, dan gunakan karakter lain untuk memisahkan nama properti dari properti, misalnya. Usus besar. Semua dengan demikian dapat diterjemahkan dengan mudah tanpa regex hanya dengan menggunakan string.split. Berikut ini sebuah contoh:
id:1;x:5;y:45.2;angle:45,id:28;x:56;y:89;angle:12;health:78
Anda dapat menghemat lebih banyak ruang dengan mempertahankan nama properti hingga 1 karakter, mis. h untuk kesehatan. Misalnya.
i:1;x:5;y:45.2;a:45,i:28;x:56;y:89;a:12;h:78
Bandingkan dengan alternatif JSON:
{"o":[{"i":1, "x":5, "y":45.2, "a":45}, {"i":28, "x":56, "y":89, "a":12, "h":78}]}
Selain itu, jika Anda ingin menurunkan ukuran angka, Anda dapat menyandikannya menggunakan set karakter UTF16 yang dapat dicetak. Utas ini mengilhami saya untuk mengajukan pertanyaan tentang Stack Overflow tentang berapa banyak data yang dapat Anda masukkan ke dalam satu karakter di layar . Jawabannya tampaknya ada di suatu tempat lebih dari 40.000 nilai untuk bilangan bulat, jika Anda tidak keberatan memiliki kepingan, kanji, dan bidak catur: ♔♕♖♗♘♙♚♛♜♝♞♟
Untuk mendapatkan pengurangan ukuran lebih lanjut, Anda dapat menggunakan urutan baca / tulis untuk menentukan nilai mana, jadi dua karakter pertama mewakili id, dua berikutnya adalah posisi x, dua berikutnya y, lalu sudut, lalu kesehatan , dll. Jadi:
F5DGP@%&002DFTK#OP1F
dapat menyimpan semua informasi yang sama dengan contoh lainnya.
Grid ubin dapat disimpan hanya sebagai string dengan setiap karakter mewakili jenis ubin yang berbeda misalnya:
i789pog5h3kl
di mana saya bisa berarti lava, 9 berarti rumput dll