Maison >développement back-end >Golang >Comment accéder aux clés et valeurs JSON profondément imbriquées dans Go ?

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

DDD
DDDoriginal
2024-10-26 10:48:03274parcourir

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>

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>

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>

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!

Déclaration:
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