首页 > 后端开发 > Golang > 正文

如何将 JSON 字符串解组为自定义 Go 标量类型?

Susan Sarandon
发布: 2024-11-21 12:58:10
原创
325 人浏览过

How to Unmarshal JSON Strings into Custom Go Scalar Types?

在 Go 中将 JSON 字符串解组为派生标量类型

在 Go 中,您可以从现有标量类型派生出新的标量类型。然而,由于标准库的限制,为此类类型实现 UnmarshalJSON 可能具有挑战性。

要正确处理此问题,必须为 UnmarshalJSON 方法使用指针接收器。值接收者不会保留方法内所做的更改。

传递给 UnmarshalJSON 的参数是 JSON 文本。可以将其解组为纯字符串,并丢弃任何引用。

func (intValue *PersonID) UnmarshalJSON(data []byte) error {
  var s string
  if err := json.Unmarshal(data, &s); err != nil {
    return err
  }
  *intValue = Lookup(s)
  return nil
}
登录后复制

此外,请确保代码中的 JSON 标记与要解组的 JSON 数据中的键匹配。

json.Unmarshal([]byte(`{"person": "Ralph", "count": 4, "greeting": "Hello"}`), &m);
登录后复制

通过执行以下步骤,您可以有效地为派生标量类型实现 UnmarshalJSON,从而实现 JSON 字符串自动转换为您自定义的值类型。

以上是如何将 JSON 字符串解组为自定义 Go 标量类型?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板