มีคำถามที่น่าสนใจคือ ในการ return JSON response
จาก REST API ที่พัฒนาด้วยภาษา Go
แล้วทำไมไม่เรียง property ตามที่เขียนใน code
โดย code ตัวอย่างเป็นดังนี้
จากตัวอย่างใช้ Gin
[gist id="92a16014e874e38d029097be074bf01c" file="api.go"]ผลที่ได้จาก code เป็นดังนี้
โดยทำไมไม่เรียงตามที่เขียนใน code
คำตอบ
เมื่อเข้าไปดู code ใน package encoding/json จะพบว่า
ในการ encode นั้นจะเก็บข้อมูลในรูปแบบของ Map ก่อน
จากนั้นทำการเรียงลำดับจากตัวอักษรจาก key ของ Map นั่นเอง
แต่ถ้าเราใช้ struct แทน จะการเรียงตาม index ให้เลย
ตัวอย่าง codeดังนี้