Maison >développement back-end >Golang >Comment analyser correctement les tableaux JSON dans Go à l'aide du package « json » ?

Comment analyser correctement les tableaux JSON dans Go à l'aide du package « json » ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-30 21:52:18297parcourir

How to Correctly Parse JSON Arrays in Go Using the `json` Package?

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!

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