Maison > développement back-end > Golang > le corps du texte

Comment accéder aux clés et valeurs JSON profondément imbriquées dans Go ?

DDD
Libérer: 2024-10-26 10:48:03
original
178 Les gens l'ont consulté

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

Accès aux clés et valeurs JSON profondément imbriquées dans Go

Lorsque vous travaillez avec des structures de données JSON complexes, il peut être difficile de récupérer des valeurs profondément imbriquées en utilisant uniquement les interfaces Go standard. Pour surmonter ce problème, envisagez d'utiliser le package go-simplejson (github.com/bitly/go-simplejson).

Ce package fournit une API facile à utiliser pour naviguer dans les données JSON via une syntaxe simple. Voici comment accéder aux valeurs « time » dans votre JSON donné à l'aide de go-simplejson :

<code class="go">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)
}</code>
Copier après la connexion

En utilisant go-simplejson, vous pouvez facilement parcourir les structures JSON imbriquées et récupérer des valeurs à l'aide de méthodes telles que Get, GetIndex et String.

Pour les structures de données complexes, vous pouvez également définir votre propre structure de type pour représenter les données JSON. Par exemple, vous pouvez créer la structure suivante :

<code class="go">type TimeInfo struct {
    Time string
}

type DataStruct struct {
    Name string
    Args []TimeInfo
}</code>
Copier après la connexion

Pour désorganiser votre JSON dans cette structure, vous pouvez utiliser le code suivant :

<code class="go">var dataStruct DataStruct
err = json.Unmarshal(jsonBytes, &dataStruct)
if err != nil {
    fmt.Println(err)
    return
}</code>
Copier après la connexion

Cette approche fournit une manière plus structurée pour représenter vos données JSON, ce qui facilite leur utilisation et leur maintenance.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!