首頁 > 後端開發 > Golang > 如何在 Go 中高效率地迭代巢狀 JSON 結構?

如何在 Go 中高效率地迭代巢狀 JSON 結構?

Patricia Arquette
發布: 2024-11-28 18:31:11
原創
737 人瀏覽過

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
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板