„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie greife ich in Go auf tief verschachtelte JSON-Schlüssel und -Werte zu?

Wie greife ich in Go auf tief verschachtelte JSON-Schlüssel und -Werte zu?

Veröffentlicht am 08.11.2024
Durchsuche:627

How to Access Deeply Nested JSON Keys and Values in Go?

Zugriff auf tief verschachtelte JSON-Schlüssel und -Werte in Go

Bei der Arbeit mit komplexen JSON-Datenstrukturen kann es schwierig sein, tief verschachtelte Werte abzurufen allein unter Verwendung von Standard-Go-Schnittstellen. Um dieses Problem zu lösen, sollten Sie die Verwendung des Pakets go-simplejson (github.com/bitly/go-simplejson) in Betracht ziehen.

Dieses Paket bietet eine benutzerfreundliche API zum Navigieren in JSON-Daten mithilfe einer einfachen Syntax. So können Sie mit go-simplejson auf die „Zeit“-Werte in Ihrem angegebenen JSON zugreifen:

package main

import (
    "encoding/json"
    "fmt"
    "github.com/bitly/go-simplejson"
)

func main() {
    msg := `{"args":[{"time":"2013-05-21 16:57:17"}],"name":"send:time"}`
    jsonBytes := []byte(msg)
    js, err := simplejson.NewJson(jsonBytes)
    if err != nil {
        fmt.Println(err)
        return
    }

    // Retrieve "time" values
    timeValue, err := js.Get("args").GetIndex(0).Get("time").String()
    if err != nil {
        fmt.Println(err)
        return
    }

    fmt.Println("Retrieved time:", timeValue)
}

Mit go-simplejson können Sie problemlos verschachtelte JSON-Strukturen durchlaufen und Werte mithilfe von Methoden wie Get, GetIndex und String abrufen.

Für komplexe Datenstrukturen können Sie auch Ihre eigenen definieren Eigene Typstruktur zur Darstellung der JSON-Daten. Sie könnten beispielsweise die folgende Struktur erstellen:

type TimeInfo struct {
    Time string
}

type DataStruct struct {
    Name string
    Args []TimeInfo
}

Um Ihr JSON in diese Struktur zu entmarshalieren, können Sie den folgenden Code verwenden:

var dataStruct DataStruct
err = json.Unmarshal(jsonBytes, &dataStruct)
if err != nil {
    fmt.Println(err)
    return
}

Dieser Ansatz bietet eine strukturiertere Möglichkeit zur Darstellung Ihrer JSON-Daten und erleichtert so die Arbeit und Wartung.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3