Maison  >  Article  >  développement back-end  >  Comment décoder []byte sous forme de chaînes dans Go JSON ?

Comment décoder []byte sous forme de chaînes dans Go JSON ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-05 22:53:02530parcourir

How to Decode []byte as Strings in Go JSON?

Décodage de []byte en tant que chaînes dans Go

Dans Go, lors du marshaling d'une tranche de []byte en tant que chaîne JSON, la conversion effectuée par la méthode json.Marshal() encode la tranche d'octets sous forme de chaîne codée en base64. Comme on le voit dans la documentation :

Array and slice values encode as JSON arrays, except that []byte encodes as a base64-encoded string, and a nil slice encodes as the null JSON object.

Cette conversion est effectuée pour compenser l'absence de représentation native des octets bruts en JSON. L'encodage base64 garantit que la tranche d'octets est transportée sous forme de chaîne JSON valide.

Surmonter l'encodage

Pour générer une chaîne JSON avec le contenu original d'un [] champ d'octets, les données doivent être converties en chaîne avant le marshalage. Ceci peut être réalisé en utilisant la fonction string() :

<code class="go">    helloStr := "Hello"
    helloSlc := []byte(helloStr)

    obj := Msg{string(helloSlc)}
    json, _ := json.Marshal(obj)
    fmt.Println(string(json))</code>

Cela produira le résultat souhaité :

{"Content":"Hello"}

Cette approche garantit que la chaîne JSON contient le contenu original de la chaîne , plutôt que sa représentation codée en base64.

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!

Déclaration:
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