Quantcast
Channel: cc :: somkiat
Viewing all articles
Browse latest Browse all 1997

[Golang] ทำไม JSON message ไม่เรียงตามที่ต้องการ

$
0
0

มีคำถามที่น่าสนใจคือ ในการ return JSON response
จาก REST API ที่พัฒนาด้วยภาษา Go
แล้วทำไมไม่เรียง property ตามที่เขียนใน code
โดย code ตัวอย่างเป็นดังนี้

จากตัวอย่างใช้ Gin

[gist id="92a16014e874e38d029097be074bf01c" file="api.go"]

ผลที่ได้จาก code เป็นดังนี้
โดยทำไมไม่เรียงตามที่เขียนใน code

[gist id="92a16014e874e38d029097be074bf01c" file="1.json"]

คำตอบ

เมื่อเข้าไปดู code ใน package encoding/json จะพบว่า
ในการ encode นั้นจะเก็บข้อมูลในรูปแบบของ Map ก่อน
จากนั้นทำการเรียงลำดับจากตัวอักษรจาก key ของ Map นั่นเอง

แต่ถ้าเราใช้ struct แทน จะการเรียงตาม index ให้เลย
ตัวอย่าง codeดังนี้

[gist id="92a16014e874e38d029097be074bf01c" file="api2.go"]

Viewing all articles
Browse latest Browse all 1997

Trending Articles