Heim > Backend-Entwicklung > Golang > Wie drucke ich eine Struktur als einfache Zeichenfolge mit Escapezeichen in Golang?

Wie drucke ich eine Struktur als einfache Zeichenfolge mit Escapezeichen in Golang?

WBOY
Freigeben: 2024-02-09 10:10:29
nach vorne
661 Leute haben es durchsucht

Wie drucke ich eine Struktur als einfache Zeichenfolge mit Escapezeichen in Golang?

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.

Frageninhalt

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))

}
Nach dem Login kopieren

Aber es wird so gedruckt.

{"data":"名称","value":"ashutosh"}

Kann mir jemand helfen, die folgende Ausgabe zu erhalten? :

"{"data":"myname","value":"ashutosh"}"

解决方法

要引用任何字符串,您可以使用strconv.quote()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)))
Nach dem Login kopieren

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
Nach dem Login kopieren

Du kannst also auch so drucken:

fmt.printf("mystruct: %q", string(r))
Nach dem Login kopieren
Da dies auch mit Byte-Slices funktioniert, benötigen Sie nicht einmal die -Konvertierung:

fmt.printf("mystruct: %q", r)
Nach dem Login kopieren
🎜Das sind alles Ausgänge (versuchen Sie es auf dem 🎜go-Spielplatz🎜): 🎜
MyStruct: "{\"data\":\"Name\",\"value\":\"Ashutosh\"}"
Nach dem Login kopieren

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!

Quelle:stackoverflow.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage