Maison >développement back-end >Golang >Comment analyser des tableaux JSON de cartes dans des structures Go ?

Comment analyser des tableaux JSON de cartes dans des structures Go ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-14 00:10:09862parcourir

How Do I Parse JSON Arrays of Maps into Go Structs?

Analyse de tableaux JSON dans des structures de données Go

Lorsque vous traitez des données JSON contenant des tableaux, il peut être difficile de choisir la structure de données Go appropriée analyser. Par exemple, si un fichier contient un tableau de paires clé-valeur, les tentatives d'utilisation d'une chaîne map[string] peuvent entraîner une erreur du type "Impossible de transformer le tableau en valeur Go de type main.data."

La solution réside dans l’identification précise de la structure JSON. Bien que l’exemple fourni semble être un tableau, il s’agit en fait d’un tableau de cartes. Le fichier doit plutôt ressembler à ce qui suit pour correspondre à la structure de chaîne map[string] :

{
  "a":"1",
  "b":"2",
  "c":"3"
}

Considérez l'extrait de code suivant qui montre l'analyse d'un tableau de cartes dans une structure Go :

package main

import (
    "encoding/json"
    "fmt"
    "io/ioutil"
    "log"
)

type mytype []map[string]string

func main() {
    var data mytype
    file, err := ioutil.ReadFile("test.json")
    if err != nil {
        log.Fatal(err)
    }
    err = json.Unmarshal(file, &data)
    if err != nil {
        log.Fatal(err)
    }
    fmt.Println(data)
}

Lorsque vous exécutez ce code avec un fichier JSON valide, il analysera avec succès les données dans la structure souhaitée, vous donnant accès aux paires clé-valeur dans le tableau.

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