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

Comment convertir des chaînes UTF-8 en []byte pour le démarshalling JSON dans Go ?

Barbara Streisand
Libérer: 2024-11-01 10:08:02
original
683 Les gens l'ont consulté

How to Convert UTF-8 Strings to []byte for JSON Unmarshalling in Go?

Désorganisation des chaînes UTF-8 en []octet

Lorsque vous travaillez avec JSON, la fonction de démarshalage nécessite une entrée de type []octet. Cependant, nos données pourraient être stockées sous forme de chaîne UTF-8. Cet article explique comment convertir une chaîne UTF-8 en []octet pour un démarshalling réussi.

Conversion à l'aide de []octet(s)

Selon la spécification Go , une chaîne peut être convertie en []byte à l'aide d'un simple transtypage :

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

Cependant, cette conversion crée une copie du contenu de la chaîne, ce qui peut être inefficace pour les grandes chaînes.

Utiliser io.Reader pour un Unmarshal efficace

Une approche alternative consiste à utiliser un io.Reader créé à partir de la chaîne :

<code class="go">s := `{&quot;somekey&quot;:&quot;somevalue&quot;}`
reader := strings.NewReader(s)
decoder := json.NewDecoder(reader)
var result interface{}
decoder.Decode(&result)</code>
Copier après la connexion

Cette méthode évite de copier la chaîne et est plus efficace pour les entrées volumineuses.

Considérations pour différents scénarios

  • Pour les petits textes JSON, conversion directe en []octet à l'aide de []octet(s) est acceptable.
  • Pour les textes JSON volumineux ou lorsque vous travaillez avec io.Readers, l'utilisation de strings.NewReader et json.NewDecoder offre une meilleure efficacité.

En résumé, la conversion des chaînes UTF-8 to []byte pour le démarshalling implique soit un casting direct, soit l'utilisation d'un io.Reader pour une gestion efficace des entrées volumineuses. Le choix dépend des exigences spécifiques de l'application.

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
Derniers articles par auteur
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!