ปัญหาที่เจอคือ
ต้องการให้ REST API ทำการ return ข้อมูลในรูปแบบของ JSON
โดย property ที่มี data type คือ float
ต้องการให้มีหลักหลังจุดทศนิยมตามที่เรากำหนด
จะต้องทำอย่างไร
ยกตัวอย่างเช่น
- 50 => 50.00
- 50.0 => 50.00
- 50.1 => 50.10
ตัวอย่างของข้อมูลที่ return จาก REST API เป็นดังนี้
[gist id="c0113fcc8427bc973c639170a65c0fb4" file="1.json"]ดังนั้นจึงต้องเขียน code มาเพื่อแก้ไขปัญหานี้หน่อย
ปกติถ้าเป็น float นั้น ถ้าเรากำหนดค่า 50.10 ไป ผลที่ได้ใน JSON คือ 50.1
แน่นอนว่า ทำงานไม่เป็นไปตามที่เราต้องการ
ดังนั้นจึงทำการแก้ไขด้วยการ implement MarshalJSON() จาก interface Marshaler
สำหรับ type ต่าง ๆ นั่นเอง
เพื่อกำหนดรูปแบบของ float นั่นเอง
ยกตัวอย่างเช่น
จากนั้นก็ลองใช้งาน type Amount กันดู แบบง่าย ๆ
เพื่อจัดรูปแบบของ float ให้มี 2 ตำแหน่งหลังจุดทศนิยมเสมอ
เป็นอีกหนึ่งแนวทางง่าย ๆ ที่น่าสนใจ
ขอให้สนุกกับการ coding ครับ