Maison  >  Article  >  développement back-end  >  Comment rassembler un champ []byte en tant que chaîne dans l'encodage Go JSON ?

Comment rassembler un champ []byte en tant que chaîne dans l'encodage Go JSON ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-07 03:29:02954parcourir

How to Marshal a []byte Field as a String in Go JSON Encoding?

Marshaling JSON []octet en tant que chaînes dans Go

Lors de l'encodage d'une structure contenant des champs []octets dans JSON, une représentation de chaîne inattendue peut résultat. Dans cet encodage, le champ []byte est marshalé comme une chaîne codée en base64, comme indiqué dans la documentation :

"Les valeurs de tableau et de tranche sont codées sous forme de tableaux JSON, sauf que []byte est codé en base64- chaîne encodée et une tranche nulle est encodée comme l'objet JSON nul. " est converti en []byte slice helloSlc et attribué au champ Content de l'objet obj Msg :

Lors du codage de l'obj en JSON à l'aide de json.Marshal, le JSON résultant contient la chaîne codée en base64 représentation du champ []byte :
<code class="go">type Msg struct {
    Content []byte
}</code>

Sortie :
<code class="go">helloStr := "Hello"
helloSlc := []byte(helloStr)
obj := Msg{helloSlc}</code>

Pour obtenir la valeur de chaîne d'origine "Bonjour" dans la sortie JSON, le champ []byte doit être explicitement décodé à partir de sa représentation codée en base64 avant l'encodage en JSON. Ceci peut être réalisé en utilisant le package encoding/base64 :
<code class="go">json, _ := json.Marshal(obj)
fmt.Println(string(json))</code>

Sortie :
{"Content":"SGVsbG8="}

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