首頁 > 後端開發 > Golang > 如何在 Go 中解組未知的 JSON 格式?

如何在 Go 中解組未知的 JSON 格式?

Susan Sarandon
發布: 2024-11-26 05:54:18
原創
404 人瀏覽過

How Can I Unmarshal Unknown JSON Formats in Go?

解組未知格式的JSON 資料

簡介

您的JSON 資料遵循未知格式,這對解組提出了挑戰將其轉換為GoLang 結構體。本文將引導您完成有效處理這種情況的步驟。

使用map[string]介面進行解組{}

因為您不知道中的鍵提前,您可以使用map[string]interface{} 來解群組您的JSON 負載。這允許您將鍵值對儲存為映射,而無需指定值的類型。

var grades map[string]interface{}

err := json.Unmarshal([]byte(jsonString), &grades)
fmt.Println(err)

fmt.Printf("%#v\n", grades)
登入後複製

這會將 JSON 資料作為字串的巢狀映射輸出到接口,這對於動態檢查和處理資料。

使用 json:"-" 標籤

你可以使用 json:"-" 標記從 JSON 編組/解組中排除某些欄位。如果您想保留某些資料的私有性或避免循環引用,這會很有用。

type GradeData struct {
    Grades map[string]interface{} `json:"-"`
}

var gradesData GradeData
err := json.Unmarshal([]byte(jsonString), &gradesData.Grades)
fmt.Println(err)

fmt.Printf("%#v\n", gradesData)
登入後複製

在此範例中,Grades 欄位不會包含在 GradesData 的 JSON 表示形式中,但仍可使用儲存和擷取 JSON 資料。

結論

透過使用map[string]interface{} 和json:"-" 標籤,您可以成功地將未知格式的JSON 資料解組到GoLang結構體中。這種方法可讓您優雅地處理動態和未知的 JSON 結構。

以上是如何在 Go 中解組未知的 JSON 格式?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板