Heim > Backend-Entwicklung > Golang > Wie kann man verschachteltes JSON in GoLang mithilfe der Typzusicherung effizient analysieren?

Wie kann man verschachteltes JSON in GoLang mithilfe der Typzusicherung effizient analysieren?

Patricia Arquette
Freigeben: 2024-11-26 08:06:12
Original
502 Leute haben es durchsucht

How to Efficiently Parse Nested JSON in GoLang Using Type Assertion?

Schleife über verschachteltes JSON in GoLang

Es besteht die Anforderung, Schlüssel-Wert-Paare aus einer verschachtelten JSON-Struktur für die dynamische Verarbeitung zu extrahieren. Um diese Struktur effizient zu durchlaufen, wird der folgende Ansatz empfohlen:

Typzusicherung mit Bereichsschleife verwenden

Wie in der Antwort angegeben, kann eine Typzusicherung iterativ verwendet werden Auf den Inhalt verschachtelter JSON-Objekte zugreifen und ihn verarbeiten. Der folgende Beispielcode demonstriert diesen Ansatz:

package main

import (
    "encoding/json"
    "fmt"    
)

func main() {
    // Create a map for the JSON data
    m := map[string]interface{}{}
    
    // Unmarshal the JSON input into the map
    err := json.Unmarshal([]byte(input), &m)
    if err != nil {
        panic(err)
    }

    // Recursively parse the map
    parseMap(m)
}

func parseMap(aMap map[string]interface{}) {
    for key, val := range aMap {
        switch concreteVal := val.(type) {
        case map[string]interface{}:
            fmt.Println(key)
            parseMap(concreteVal)
        case []interface{}:
            fmt.Println(key)
            parseArray(concreteVal)
        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(concreteVal)
        case []interface{}:
            fmt.Println("Index:", i)
            parseArray(concreteVal)
        default:
            fmt.Println("Index", i, ":", concreteVal)
        }
    }
}

const input = `
{
    "outterJSON": {
        "innerJSON1": {
            "value1": 10,
            "value2": 22,
            "InnerInnerArray": [ "test1" , "test2"],
            "InnerInnerJSONArray": [{"fld1" : "val1"} , {"fld2" : "val2"}]
        },
        "InnerJSON2":"NoneValue"
    }
}
`
Nach dem Login kopieren

In diesem Code durchlaufen die Funktionen parseMap und parseArray rekursiv die verschachtelte JSON-Struktur und drucken die Schlüssel-Wert-Paare hierarchisch. Dieser Ansatz bietet einen vielseitigen Mechanismus für den Zugriff auf und die Verarbeitung von Daten aus JSON, unabhängig von ihrer Komplexität.

Das obige ist der detaillierte Inhalt vonWie kann man verschachteltes JSON in GoLang mithilfe der Typzusicherung effizient analysieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage