如何将空字符串解组为 nil

如果我有一些像这样的 JSON 数据:

{
  nullableID: ""
  }

我怎样才能解组这个结构:

help := struct {
  ID *primitive.ObjectID `json:"nullableID",omitempty`
  }{}

解码为help这样help.ID == nil


慕村9548890
浏览 108回答 1
1回答

摇曳的蔷薇

实现ObjectID接口Unmarshaler并检查空字符串:func (o *ObjectID) UnmarshalJSON(data []byte) error {  if err := json.Unmarshal(data, o); err != nil {    return err  }  if string(*o) == "" {    o = nil  }  return nil}如果该ObjectID类型是从另一个包导入的,您可以创建一个包装该类型的新类型:// objID is a copy of primitive.ObjectID but with it's own json unmarshalling.type objID struct {  *primitive.ObjectID}func (o *objID) UnmarshalJSON(data []byte) error {  // Same implementation as above}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go