Conversion de chaînes UTF-8 en tableaux d'octets pour le démarshaling JSON
Pour démarshaler une chaîne JSON, il faut fournir un tableau d'octets ([]byte) comme entrée de la fonction désignée. Cet article explore les méthodes pour convertir les chaînes UTF-8 en []byte à cette fin.
Méthode 1 : conversion de type directe
The Go Le langage permet la conversion directe de chaînes en []byte en utilisant une simple conversion de type :
s := "some text" b := []byte(s) // b is of type []byte
Cette méthode est sanctionnée par la spécification du langage, où elle indique que la conversion d'une chaîne en []byte donne une tranche contenant des octets individuels de la chaîne.
Méthode 2 : utiliser un io.Reader avec json.NewDecoder()
Alternativement, un io.Reader peut être utilisé avec json.NewDecoder(). Le io.Reader fourni lira une chaîne sans créer de copie, optimisant ainsi le processus :
s := `{"somekey":"somevalue"}` var result interface{} err := json.NewDecoder(strings.NewReader(s)).Decode(&result)
Cette méthode évite la surcharge liée à la copie du contenu de la chaîne dans un [ ]byte, ce qui le rend préférable pour les textes JSON plus volumineux.
Remarque : Pour les petites chaînes JSON, la conversion de type directe à l'aide de []byte(s) est reste une option viable avec un impact négligeable sur les performances.
Conclusion
Cet article présente deux méthodes pour convertir les chaînes UTF-8 en []byte pour Unmarshaling JSON : un cast de type direct et l'utilisation d'un io.Reader avec json.NewDecoder(). La méthode appropriée à utiliser dépend du cas d'utilisation spécifique et de la taille des données.
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!