Go是一門增長迅速的編程語言,其擴展包括 encoding/json 是其中最常見的之一。然而,當使用 json.Unmarshal() 時,Go不會自動處理使用下劃線的 JSON key,并且Go語言開發人員需要使用Tag注釋來處理這些下劃線。
Go的 encoding/json 包使用嚴格的命名約定,JSON中的 key 名稱必須匹配結構體字段的大寫字母開頭的命名約定。然而,在其他語言中,下劃線經常用于命名變量,這導致Go語言開發人員必須根據嚴格的命名約定來調整其代碼。
type User struct { FirstName string `json:"first_name"` LastName string `json:"last_name"` Age int `json:"age"` }
在這個例子中,使用了json:"first_name"和json:"last_name"之類的代碼。這樣可以告訴 encoding/json 包如何序列化 JSON,并使Go語言開發人員可以根據他們的偏好命名JSON key。
總的來說,在處理 JSON 的時候,Go開發者必須要小心夾在 JSON key 中的下劃線。通過使用Tag注釋,Go可以更容易地解析JSON數據。