簡介
您的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中文網其他相關文章!