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

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

DDD
DDDoriginal
2024-10-27 01:54:03746parcourir

How to Access Deeply Nested JSON Values in Go?

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

Dans Go, la gestion de structures JSON complexes peut être difficile en raison de la nature dynamique du type d'interface . Pour les clés et valeurs JSON profondément imbriquées, considérez que le package « github.com/bitly/go-simplejson » propose une approche plus simple.

Pour utiliser go-simplejson, installez le package en utilisant :

<code class="bash">go get github.com/bitly/go-simplejson</code>

Avec ce package, vous pouvez accéder à des valeurs JSON profondément imbriquées à l'aide des méthodes Get et GetIndex. Par exemple, pour récupérer le paramètre "time" du JSON fourni :

<code class="go">json, err := simplejson.NewJson([]byte(msg))
if err != nil {
    panic(err)
}

time, _ := json.Get("args").GetIndex(0).Get("time").String()
log.Println(time)</code>

Pour déclarer des structures de type pour des structures de données complexes, vous pouvez utiliser le package "encoding/json". Par exemple, la structure suivante représente le message JSON :

<code class="go">type Message struct {
   Name  string                 `json:"name"`
   Args  []map[string]interface{} `json:"args"`
}</code>

Vous pouvez ensuite désorganiser le message JSON dans cette structure :

<code class="go">m := Message{}
if err := json.Unmarshal([]byte(msg), &m); err != nil {
    panic(err)
}</code>

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