首页  >  文章  >  后端开发  >  如何在 Golang 中将 JSON 字符串字段解组为字符串片段?

如何在 Golang 中将 JSON 字符串字段解组为字符串片段?

Barbara Streisand
Barbara Streisand原创
2024-10-27 05:52:29399浏览

How to Unmarshal a JSON String Field into a Slice of Strings in Golang?

在 Golang 中使用字符串拆分进行自定义解组

问题:

将 JSON 解组到 Golang结构体,其中一个字符串字段(例如“subjects”)需要根据分隔符(例如“-”)拆分为一段字符串。

解决方案:

为字符串切片字段实现自定义解组器。这涉及创建一个实现 json.Unmarshaler 接口的新数据类型:

<code class="go">type strslice []string

func (ss *strslice) UnmarshalJSON(data []byte) error {
    var s string
    if err := json.Unmarshal(data, &s); err != nil {
        return err
    }
    *ss = strings.Split(s, "-")
    return nil
}</code>

在结构中使用此自定义类型:

<code class="go">type Student struct {
    StudentNumber int      `json:"student_number"`
    Name          string   `json:"name"`
    Subjects      strslice `json:"subjects"`
}</code>

现在,在解组 JSON 时,“主题" 字段将自动分割成字符串切片:

<code class="go">var s Student
err := json.Unmarshal([]byte(src), &s)
fmt.Println(s, err)</code>

输出:

{1234567 John Doe [Chemistry Maths History Geography]} <nil>

以上是如何在 Golang 中将 JSON 字符串字段解组为字符串片段?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn