En Golang, imprimer une structure sous forme de chaîne simple avec des caractères d'échappement est un besoin courant. Ceci peut être réalisé en utilisant la fonction Sprint du package fmt. La fonction Sprint convertit la structure en chaîne et échappe automatiquement les caractères spéciaux qu'elle contient. En utilisant l'espace réservé %#v, vous pouvez vous assurer que les caractères échappés sont inclus dans la chaîne imprimée. Voici un exemple de code simple montrant comment imprimer une structure sous forme de chaîne simple avec des caractères d'échappement : ``` va paquet principal importer ( "fmt" ) tapez Structure de personne { Chaîne de nom Âge entier } fonction main() { p := Personne{ Nom : "Jean", Âge : 30 ans, } str := fmt.Sprintf("%#v", p) fmt.Println(str) } ``` Dans le code ci-dessus, nous définissons une structure Person et créons une instance p. Ensuite, utilisez la fonction fmt.Sprintf pour convertir p en une chaîne simple avec des caractères d'échappement. Enfin, utilisez la fonction fmt.Println pour imprimer la chaîne. Exécutez le code et le résultat de sortie est `main.Person{Name:"John", Age:30}`, dans lequel les guillemets doubles et les barres obliques inverses représentent des caractères d'échappement. De cette façon, nous avons réussi à imprimer la structure sous forme de chaîne simple avec des caractères d'échappement.
J'essaie d'imprimer une structure golang sous forme de chaîne avec des caractères échappés mais je n'y parviens pas.
Je souhaite imprimer ma structure comme ceci :
"{"data":"myname","value":"ashutosh"}"
C'est ce que j'ai essayé.
package main import ( "encoding/json" "fmt" ) type Resp struct { Data string `json:"data"` Value string `json:"value"` } func main() { var data Resp data.Data = "Name" data.Value = "Ashutosh" r, _ := json.Marshal(data) fmt.Println("MyStruct: ", string(r)) }
Mais ça s'imprime comme ça.
{"data":"名称","value":"ashutosh"}
Quelqu'un peut-il m'aider à obtenir le résultat suivant ? :
"{"data":"myname","value":"ashutosh"}"
要引用任何字符串,您可以使用strconv.quote()
p>Solution de contournement
Pour citer n'importe quelle chaîne, vous pouvez utiliser strconv.quote( )< /code><code>fmt
包中还有一个用于引用字符串的动词:%q
:
fmt.println("mystruct:", strconv.quote(string(r)))
fmt
Il y a aussi un verbe dans le package pour citer des chaînes : %q
:
String et byte slices (traitement équivalent avec ces verbes) : string
%q a double-quoted string safely escaped with go syntax
fmt.printf("mystruct: %q", string(r))
fmt.printf("mystruct: %q", r)
MyStruct: "{\"data\":\"Name\",\"value\":\"Ashutosh\"}"
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!