在 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中文网其他相关文章!