簡介
您的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 data.
結論
透過使用map[string]interface{}和json:"-"標籤,你可以成功地將未知格式的JSON 資料解組到GoLang 結構中。這種方法可讓您優雅地處理動態和未知的 JSON 結構。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3