循環遍歷 Go 中的巢狀 JSON 結構
本問題探討如何在 Go 中高效地迭代巢狀 JSON 結構。考慮問題中提供的 JSON 範例。目標是從這個複雜的 JSON 結構中提取所有鍵值對。
使用類型切換和遞歸的組合,可以實現自訂函數來解析字串鍵到介面值的映射:
func parseMap(aMap map[string]interface{}) { for key, val := range aMap { switch concreteVal := val.(type) { case map[string]interface{}: fmt.Println(key) parseMap(val.(map[string]interface{})) case []interface{}: fmt.Println(key) parseArray(val.([]interface{})) default: fmt.Println(key, ":", concreteVal) } } }
同樣,可以遞歸解析介面值數組:
func parseArray(anArray []interface{}) { for i, val := range anArray { switch concreteVal := val.(type) { case map[string]interface{}: fmt.Println("Index:", i) parseMap(val.(map[string]interface{})) case []interface{}: fmt.Println("Index:", i) parseArray(val.([]interface{})) default: fmt.Println("Index", i, ":", concreteVal) } } }
透過呼叫這些函數可以遞歸地迭代JSON 結構,以所需的格式提取所有鍵值對。
以上是如何在 Go 中高效率地迭代巢狀 JSON 結構?的詳細內容。更多資訊請關注PHP中文網其他相關文章!