Analyser tableau JSON dans Golang
Question Simple: comment analyser une chaîne de caractères (qui est un tableau) en utilisant json paquet?
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)
}
OriginalL'auteur kingSlayer | 2016-08-10
Vous devez vous connecter pour publier un commentaire.
La valeur de retour de
Unmarshal
est une erreur, et c'est ce que vous êtes d'impression:Vous pouvez vous débarrasser de la
JsonType
ainsi et il suffit d'utiliser une tranche:Code sur le jeu: https://play.golang.org/p/GNWlylavam
OriginalL'auteur miku
Remarque: Cette réponse a été écrit avant que la question a été édité. Dans le question d'origine
&arr
a été transmis àjson.Unmarshal()
:Vous transmettre l'adresse de
arr
àjson.Unmarshal()
à unmarshal un tableau JSON, maisarr
n'est pas un tableau (ou tranche), c'est une struct valeur.Les tableaux peuvent être décodées en tableaux ou en tranches. Donc passer
arr.Array
:De sortie (essayez sur la Aller De L'Aire De Jeux):
Bien sûr, vous n'avez même pas besoin de la
JsonType
wrapper, il suffit d'utiliser un simple[]string
tranche:Vous devez passer l'adresse de la variable de sorte que la
json
package peut unmarshal droit dans votre variable. Le résultat n'a pas besoin d'être retourné, mais l'option d'erreur.Donc mon problème est que j'ai imprimé la valeur de l'erreur et non pas le fait de la valeur de l'arr.Tableau, c'était la confusion pour moi, Merci.
Oui, vous avez édité votre question, mais dans votre question vous avez passé
arr
ce qui entraîne une erreur.OriginalL'auteur icza