XML เป็นตัวเลือกที่ดีถ้าคุณไม่ได้ถูก จำกัด ด้วยขนาดและรองรับแบบดั้งเดิม (เช่นใน. NET และ Flash) แต่ถ้าคุณต้องการรูปแบบที่บางคุณสามารถสร้างรูปแบบและ parser ของคุณเองได้ค่อนข้างง่าย ปกติฉันใช้ 1 ตัวอักษรเช่น จุลภาคเพื่อคั่นแต่ละวัตถุ ในการถอดรหัสสตริงให้ทำการแยกด้วยเครื่องหมายจุลภาค ตอนนี้แต่ละวัตถุต้องการคุณสมบัติที่แตกต่างดังนั้นแยกสิ่งเหล่านี้ด้วยอักขระที่แตกต่างกันเช่นเซมิโคลอนและใช้อักขระอื่นเพื่อแยกชื่อคุณสมบัติจากคุณสมบัติของทรัพย์สินเช่น ปลายลำไส้ใหญ่ ทั้งหมดนี้สามารถถอดรหัสได้อย่างง่ายดายโดยไม่ต้อง regex เพียงแค่ใช้ string.split นี่คือตัวอย่าง:
id:1;x:5;y:45.2;angle:45,id:28;x:56;y:89;angle:12;health:78
คุณสามารถประหยัดพื้นที่ได้มากขึ้นด้วยการทำให้ชื่อคุณสมบัติมีความยาวไม่เกิน 1 ตัวอักษรเช่น h เพื่อสุขภาพ เช่น.
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 ค่าสำหรับจำนวนเต็มถ้าคุณไม่คิดว่าจะมี brail, Kanji และ Chess pieces: ♔♕♖♗♘♙♚♛♜♝♞♟
เพื่อให้ได้ขนาดที่ลดลงคุณสามารถใช้ลำดับการอ่าน / เขียนเพื่อกำหนดว่าค่าใดดังนั้นอักขระสองตัวแรกที่แสดงถึง id สองตำแหน่งถัดไปคือตำแหน่ง x, ถัดไปสอง y และมุมแล้วสุขภาพ เป็นต้นดังนั้น:
F5DGP@%&002DFTK#OP1F
สามารถเก็บข้อมูลเดียวกันทั้งหมดเป็นตัวอย่างอื่น ๆ
กริดไทล์สามารถจัดเก็บเป็นเพียงสตริงที่มีตัวละครแต่ละตัวที่เป็นตัวแทนของประเภทที่แตกต่างกันเช่น:
i789pog5h3kl
ที่ฉันอาจหมายถึงลาวา, 9 หมายถึงหญ้า ฯลฯ