Maison > Article > développement back-end > Comment décoder []byte sous forme de chaînes dans 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!