在任何程式語言中解析複雜的JSON 結構都可能具有挑戰性,但Go 提供了有用的工具來使其變得更容易。
Go 中,encoding/json 套件提供了 json.Unmarshal 函數來解析 JSON 資料。正如這個問題所強調的,一個關鍵的挑戰在於處理具有未知格式的複雜 JSON 結構。
如答案中所建議的,一個強大的方法是使用 Unmarshal 來解碼JSON 轉換為空介面interface{}。這會將解析後的JSON 分配給底層的map[string]interface{}:
type MyStruct struct { K1 string `json:"k1"` K3 int `json:"k3"` Result [][]interface{} `json:"result"` } var s MyStruct err := json.Unmarshal(jsonBytes, &s)
解碼後,可以使用f.(map[string]interface{}).
檢查結果和類型轉換要提取數據,請迭代映射並使用類型開關來確定每個數據的類型value:for k, v := range f { switch v := v.(type) { case string: case int: case []interface{}: case map[string]interface{}: } }
以上是Go的encoding/json套件如何有效率地解析複雜且未知的JSON結構?的詳細內容。更多資訊請關注PHP中文網其他相關文章!