Maison >développement back-end >Golang >Comment analyser un tableau JSON dans Go et gérer efficacement les erreurs potentielles ?

Comment analyser un tableau JSON dans Go et gérer efficacement les erreurs potentielles ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-02 13:30:10738parcourir

How Do I Parse a JSON Array in Go and Handle Potential Errors Efficiently?

Analyser un tableau JSON dans Go

L'analyse d'un tableau JSON dans Go implique d'utiliser le package json pour interpréter la structure du tableau et extraire ses valeurs.

Considérez l'extrait de code suivant :

type JsonType struct {
  Array []string
}

func main() {
  dataJson := `["1", "2", "3"]`
  arr := JsonType{}
  err := json.Unmarshal([]byte(dataJson), &arr.Array)
  log.Printf("Unmarshaled: %v", err)
}

Erreur Gestion

Notez que la fonction Unmarshal renvoie une erreur, qui doit être traitée en conséquence. Dans le code ci-dessus, l'erreur est ignorée, ce qui entraîne un message de journal trompeur. Pour remédier à ce problème, remplacez log.Printf("Unmarshaled: %v", err) par ce qui suit :

if err != nil {
  log.Fatal(err)
}
log.Printf("Unmarshaled: %v", arr)

Simplification de la gestion des tableaux

La structure JsonType peut également être omise, simplifiant davantage le code :

package main

import (
  "encoding/json"
  "log"
)

func main() {
  dataJson := `["1", "2", "3"]`
  var arr []string
  _ = json.Unmarshal([]byte(dataJson), &arr)
  log.Printf("Unmarshaled: %v", arr)
}

Ce code optimisé réduit les allocations de mémoire et améliore la clarté du code. L'utilisation d'un pointeur lors du démarshalage permet une gestion efficace de la mémoire, notamment dans les contextes de traitement où plusieurs démarshals peuvent se produire sur la même variable.

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