循环遍历 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中文网其他相关文章!