1 回答

TA貢獻1816條經驗 獲得超6個贊
最簡單的方法是定義您自己的字符串切片類型并json.Unmarshaler
在其上實現:
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
}
并在您的結構中使用它:
type Student struct {
? ? StudentNumber int? ? ? `json:"student_number"`
? ? Name? ? ? ? ? string? ?`json:"name"`
? ? Subjects? ? ? strslice `json:"subjects"`
}
然后它會起作用:
func main() {
? ? var s Student
? ? err := json.Unmarshal([]byte(src), &s)
? ? fmt.Println(s, err)
}
const src = `{"student_number":1234567, "name":"John Doe", "subjects":"Chemistry-Maths-History-Geography"}`
{1234567 John Doe [Chemistry Maths History Geography]} <nil>
- 1 回答
- 0 關注
- 143 瀏覽
添加回答
舉報