Maison  >  Article  >  développement back-end  >  Comment analyser un tableau JSON dans Go ?

Comment analyser un tableau JSON dans Go ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-19 20:23:03481parcourir

How do I parse a JSON array in Go?

Comment analyser un tableau JSON dans Go

Dans Go, le package encoding/json prend en charge la désorganisation des données JSON dans les structures Go. Pour analyser un tableau JSON, vous pouvez utiliser les étapes suivantes :

  1. Définir une structure Go : Définir une structure qui représente la forme des éléments individuels dans le JSON tableau. Par exemple, si le tableau JSON contient des objets avec des champs de nom et de prix, vous définirez la structure suivante :

    type PublicKey struct {
        Name string
        Price string
    }

    Remarque : Assurez-vous que les noms de champ dans la structure correspondent au champ noms dans le tableau JSON.

  2. Créez une tranche de la structure : Créez une tranche du type de structure défini pour contenir les données analysées :

    var keys []PublicKey
  3. Désorganisez le JSON : Utilisez la fonction json.Unmarshal() pour démarshaler le tableau JSON dans la tranche de structures :

    err := json.Unmarshal([]byte(jsonStr), &keys)

    où jsonStr est les données JSON à analysé.

  4. Gérez toutes les erreurs : Vérifiez les erreurs rencontrées lors du démarchage. Si une erreur survient, elle sera stockée dans la variable err :

    if err != nil {
        // Handle the error
    }
  5. Accéder aux données analysées : Une fois le tableau JSON analysé, vous pouvez accéder les éléments individuels de la tranche de structs :

    for _, key := range keys {
        fmt.Println(key.Name, key.Price)
    }

Exemple :

Le code suivant montre comment analyser un tableau JSON en suivant les étapes ci-dessus :

package main

import (
    "encoding/json"
    "fmt"
)

type PublicKey struct {
    Name string
    Price string
}

func main() {
    jsonStr := `[{"name":"Galaxy Nexus", "price":"3460.00"},{"name":"Galaxy Nexus", "price":"3460.00"}]`

    var keys []PublicKey
    err := json.Unmarshal([]byte(jsonStr), &keys)
    if err == nil {
        for _, key := range keys {
            fmt.Println(key.Name, key.Price)
        }
    } else {
        fmt.Println(err)
    }
}

Sortie :

Galaxy Nexus 3460.00
Galaxy Nexus 3460.00

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