In Golang ist das Drucken einer Struktur als einfache Zeichenfolge mit Escapezeichen ein häufiger Bedarf. Dies kann durch die Verwendung der Sprint-Funktion aus dem fmt-Paket erreicht werden. Die Sprint-Funktion wandelt die Struktur in einen String um und maskiert die darin enthaltenen Sonderzeichen automatisch. Durch die Verwendung des %#v-Platzhalters können Sie sicherstellen, dass Escape-Zeichen in der gedruckten Zeichenfolge enthalten sind. Hier ist ein einfacher Beispielcode, der zeigt, wie eine Struktur als einfache Zeichenfolge mit Escapezeichen gedruckt wird: „Geh Paket main importieren ( „fmt“ ) Typ Personenstruktur { Namenszeichenfolge Alter int } func main() { p := Person{ Name: „John“, Alter: 30, } str := fmt.Sprintf("%#v", p) fmt.Println(str) } „ Im obigen Code definieren wir eine Personenstruktur und erstellen eine Instanz p. Verwenden Sie dann die Funktion fmt.Sprintf, um p in eine einfache Zeichenfolge mit Escapezeichen umzuwandeln. Verwenden Sie abschließend die Funktion fmt.Println, um die Zeichenfolge zu drucken. Führen Sie den Code aus und das Ausgabeergebnis ist „main.Person{Name:"John", Age:30}“, wobei doppelte Anführungszeichen und Backslashes Escape-Zeichen darstellen. Auf diese Weise haben wir die Struktur erfolgreich als einfache Zeichenfolge mit Escapezeichen gedruckt.
Ich versuche, eine Golang-Struktur als Zeichenfolge mit Escape-Zeichen zu drucken, schaffe es aber nicht.
Ich möchte meine Struktur so ausdrucken:
"{"data":"myname","value":"ashutosh"}"
Das habe ich versucht.
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)) }
Aber es wird so gedruckt.
{"data":"名称","value":"ashutosh"}
Kann mir jemand helfen, die folgende Ausgabe zu erhalten? :
"{"data":"myname","value":"ashutosh"}"
要引用任何字符串,您可以使用strconv.quote()
p>Problemumgehung
Um eine beliebige Zeichenfolge in Anführungszeichen zu setzen, können Sie strconv.quote( )< verwenden /code><code>fmt
包中还有一个用于引用字符串的动词:%q
:
fmt.println("mystruct:", strconv.quote(string(r)))
fmt
Im Paket gibt es auch ein Verb zum Zitieren von Zeichenfolgen: %q
:
String- und Byte-Slices (äquivalente Verarbeitung mit diesen Verben): 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\"}"
Das obige ist der detaillierte Inhalt vonWie drucke ich eine Struktur als einfache Zeichenfolge mit Escapezeichen in Golang?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!