跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 咨询一个 Golang 的 easyjson 的问题
未分類
22 7 月 2020

咨询一个 Golang 的 easyjson 的问题

咨询一个 Golang 的 easyjson 的问题

資深大佬 : linvon 7

昨天在查一个 bug,结构体里明明存在了值,但 json 序列化后就是没有,查到今天发现是 easyjson 没有更新,具体情况是这样的:

 type A struct {  W *string `json:"w"` }  type B struct {  *A }  member := &A{  W: goproto.String("123"), } bytes, err := json.Marshal(member) if err != nil {  fmt.Println(err) } else {  fmt.Println(string(bytes)) //{"w":"123"} } param := &B{member} bytes, err = json.Marshal(param) if err != nil {  fmt.Println(err) } else {  fmt.Println(string(bytes)) //{} }  

其中 A 和 B 两个 Struct 都是由 easyjson 生成的,这样每次更新 A 时,都会去重新用 easyjson 生成。但问题在于 B 可能在不同的包里,并不知道 A 更新了,或者更新 A 的时候忘记更新 B,这个时候使用 easyjson 的序列化就没办法将新增加的字段序列化进去,但取值仍是能取到的。

想问一下这是一种正常的现象吗? 还是说我的使用姿势有问题?

如果是正常现象的话,有没有什么好办法可以规避的?

大佬有話說 (0)

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具