Maison > développement back-end > Golang > le corps du texte

Comment convertir efficacement des chaînes UTF8 en tableaux d'octets pour le démarshaling JSON dans Go ?

DDD
Libérer: 2024-10-30 05:29:27
original
709 Les gens l'ont consulté

How to Efficiently Convert UTF8 Strings to Byte Arrays for JSON Unmarshaling in Go?

Conversion de chaînes UTF8 en tableaux d'octets pour le démarshalage JSON

Lors du démarshalage d'une chaîne JSON à l'aide de la fonction Unmarshal, un paramètre représentant un tableau d'octets est requis. Cet article fournit une méthode efficace pour convertir une chaîne UTF8 en un tableau d'octets compatible.

Processus de conversion

Le langage Go permet la conversion directe de chaînes en tableaux d'octets, comme spécifié dans la spécification du langage. Le code suivant illustre cette conversion :

<code class="go">s := "some text"
b := []byte(s) // b is of type []byte</code>
Copier après la connexion

Cependant, cette conversion peut être inefficace pour les grandes chaînes en raison de l'opération de copie qu'elle effectue. Une approche alternative consiste à utiliser un io.Reader pour éviter la surcharge de copie. Cela implique de créer un io.Reader en utilisant strings.NewReader() et de le transmettre à json.NewDecoder() à la place :

<code class="go">s := `{&quot;somekey&quot;:&quot;somevalue&quot;}`

var result interface{}
err := json.NewDecoder(strings.NewReader(s)).Decode(&amp;result)
fmt.Println(result, err)</code>
Copier après la connexion

Cette méthode permet au programme d'accéder aux données JSON sans créer de copie de l'entrée. string.

Considérations sur les performances

La surcharge associée à la création d'un io.Reader et à l'utilisation de json.NewDecoder() doit être prise en compte pour les petits textes JSON. Dans de tels cas, la conversion directe via []octet(s) reste une option viable car elle offre des performances comparables.

Conclusion

En fonction de la taille et de la source de l'entrée JSON, différentes méthodes peuvent être utilisées pour convertir les chaînes UTF8 en tableaux d'octets pour le démarshaling. En tirant parti de l'approche de conversion directe ou io.Reader, les développeurs peuvent traiter efficacement les données JSON dans leurs applications Go.

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!