【程式語言 — Go】關於JSON序列化、反序列化
IPFS
![](https://imagedelivery.net/kDRCweMmqLnTPNlbum-pYA/prod/embed/1fc7395b-fbce-49e7-b328-f022596b54a3.png/public)
圖片來源
用omitempty來過濾掉空的property造成bool false被過濾掉
一般來說我們會這樣定義Struct來接收前端請求的POST Body
type UpdateReq struct { Name string `json:"name,omitempty" bson:"name,omitempty"` Enabled bool `json:"enabled,omitempty" bson:"enabled,omitempty"` }
那假設POST Body是這樣
{ enabled: false }
此時我們利用gin的BindJSON來Unmarshal
var body domain.UpdateReq c.BindJSON(&body)
結果印出來會是
{ }
上述結果的name被我們過濾掉是正常,但enabled就我們的需求上來看,不應該被過濾掉才對。
所以我們應該將bool、int這類的型態宣告為指標,如下:
type UpdateReq struct { Name string `json:"name,omitempty" bson:"name,omitempty"` Enabled *bool `json:"enabled,omitempty" bson:"enabled,omitempty"` }
結果如我們的預期
{ enabled: false }
喜欢我的作品吗?别忘了给予支持与赞赏,让我知道在创作的路上有你陪伴,一起延续这份热忱!
![](https://imagedelivery.net/kDRCweMmqLnTPNlbum-pYA/prod/avatar/dc9e385e-cbd4-475f-8be8-ba3267a6bf88.jpeg/public)
- 来自作者
- 相关推荐