首頁 > 後端開發 > Golang > 主體

如何在 Go 中使用字串拆分自訂 JSON 解組?

Linda Hamilton
發布: 2024-10-26 04:23:02
原創
483 人瀏覽過

How to Customize JSON Unmarshaling with String Split in Go?

Go 中使用字串拆分自訂解組

在處理JSON 資料時,經常需要針對特定的情況轉換或自訂解組過程資料類型。在本例中,我們希望在解組期間將包含逗號分隔值的 JSON 字串拆分為 []string 切片。

為了實現此目的,讓我們為[]string 類型實作一個自訂解組器:

<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>
登入後複製

這個自訂解組器將原始JSON 資料作為輸入,並透過在指定的分隔符號(本例中為“-”)上拆分它來將其轉換為字串切片。

在我們的原始結構中,我們現在可以為主題字段使用此自訂類型:

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

這允許我們將JSON 資料直接解組到結構中,主題字段自動拆分為單獨的字串:

<code class="go">json := `{"student_number":1234567, "name":"John Doe", "subjects":"Chemistry-Maths-History-Geography"}`
var s Student
if err := json.Unmarshal([]byte(json), &s); err != nil {
    panic(err)
}
fmt.Println(s) // Output: {1234567 John Doe [Chemistry Maths History Geography]}</code>
登入後複製

以上是如何在 Go 中使用字串拆分自訂 JSON 解組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!