Maison >développement back-end >Golang >Comment analyser correctement les tableaux JSON dans Go à l'aide du package « json » ?
Analyse de tableaux JSON dans Go à l'aide du package JSON
Lorsque vous tentez d'analyser une chaîne représentant un tableau JSON dans Go à l'aide du package json, certains développeurs peuvent rencontrer des erreurs avec la fonction Unmarshal. Cet article fournit une solution et met en évidence des approches alternatives.
Code original :
type JsonType struct { Array []string } func main() { dataJson := `["1","2","3"]` arr := JsonType{} unmarshaled := json.Unmarshal([]byte(dataJson), &arr.Array) log.Printf("Unmarshaled: %v", unmarshaled) }
Problème :
L'erreur renvoyée par Unmarshal est imprimé à la place du tableau attendu. Pour résoudre ce problème, la fonction Unmarshal doit être modifiée comme suit :
err := json.Unmarshal([]byte(dataJson), &arr)
La valeur de retour d'Unmarshal est une erreur, qui doit être traitée de manière appropriée.
Approche simplifiée :
Pour simplifier le code, la structure JsonType peut être éliminée et une tranche peut être utilisée directement :
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) }
Avantages de l'utilisation d'un pointeur (facultatif) :
Passer un pointeur vers la variable dans Unmarshal permet une optimisation de la mémoire et des gains de performances potentiels, notamment dans un traitement contexte où la même variable est réutilisée à plusieurs reprises.
Conclusion :
Par En modifiant la fonction Unmarshal et en utilisant directement une tranche, les développeurs peuvent analyser efficacement les tableaux JSON dans Go à l'aide du package json. L'utilisation d'un pointeur lors du passage de la variable à Unmarshal peut optimiser davantage l'utilisation de la mémoire, en particulier dans les scénarios de traitement.
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!