ปัญหา
ในงานที่ทำ มีกรณีของการทำงานร่วมกับข้อมูลในรูปแบบ JSON
ซึ่งในบาง field/property อาจจะมีข้อมูลมาบ้าง ไม่มีบ้าง
แถมเป็น null/nill ได้อีก
ทำให้การแปลงข้อมูล JSON มาเป็น Struct
ไม่ตรงตามที่ต้องการเท่าไร
จึงลองหาวิธีการแก้ไขนิดหน่อย

แนวทางการแก้ไข

เริ่มจาก code ปกติงานได้ปกติ

แต่เมื่อถ้าบาง property ไม่ได้กำหนดค่า

จะมีค่าเป็น zero value
ยกตัวอย่างที่ property Amount

สิ่งที่ต้องการคือ ถ้าไม่ทำการกำหนดค่าของ property Amount

จะไม่แสดง property Amount มาด้วย
โดยเพิ่ม json literal ชื่อว่า omitempty
ก็ทำตามนี้

แต่ก็มีบางกรณี ที่มีกำหนดค่าเป็น nil มาด้วย มันจะซับซ้อนไปไหน ?

จัดการข้อมูลต้นทางดี ๆ ไม่ได้หรือไง ?
ตอบเลย ไม่ได้ เศร้า !!
ดังนั้นแก้ไขกันหน่อย
ด้วยการให้ property ที่มีชนิดเป็น int ให้สามารถรับค่า nil ได้
ด้วยการเปลี่ยนเป็น pointer ดังนี้

ก็พอแก้ไขให้ทำงานที่ต้องการได้บ้าง