Conversion de chaînes UTF-8 en tableaux d'octets
La démarshallisation de JSON nécessite une entrée de tranche d'octets, tandis que les chaînes sont stockées au format UTF-8 dans Go . Cet article explore la conversion efficace des chaînes UTF-8 en tableaux d'octets.
Conversion directe
Go permet de convertir des chaînes en tranches d'octets, créant ainsi une copie des octets de la chaîne. :
s := "some text"
b := []byte(s)
Cependant, pour les grandes chaînes, cette approche est inefficace en raison de la copie.
Utilisation de io.Reader
Une alternative efficace consiste à utiliser strings.NewReader() pour créer un io.Reader qui lit la chaîne sans copier :
s := `{ "somekey": "somevalue" }`
var result interface{}
err := json.NewDecoder(strings.NewReader(s)).Decode(&result)
Cette approche évite de copier la chaîne.
Petits textes JSON
Pour les petits textes JSON, la conversion directe reste une option rapide :
s := `{ "somekey": "somevalue" }`
var result interface{}
err := json.Unmarshal([]byte(s), &result)
Remarque : Lors de la lecture de JSON à partir d'un io.Reader (par exemple, un fichier ou un réseau), transmettez le io. Lecteur directement vers json.NewDecoder() sans lecture de chaîne intermédiaire.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3