首页 > 后端开发 > Golang > 如何在 Go 中高效地迭代嵌套 JSON 结构?

如何在 Go 中高效地迭代嵌套 JSON 结构?

Patricia Arquette
发布: 2024-11-28 18:31:11
原创
736 人浏览过

How Can I Efficiently Iterate Over Nested JSON Structures in Go?

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

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板