Heim  >  Artikel  >  Backend-Entwicklung  >  golang string 转json

golang string 转json

WBOY
WBOYOriginal
2023-05-13 10:04:073301Durchsuche

In Golang können Sie zum Konvertieren des String-Typs in ein JSON-Objekt das JSON-Paket in der Standardbibliothek verwenden.

Zuerst können wir die Funktion json.Marshal() verwenden, um Objekte in Golang in Zeichenfolgen im JSON-Format zu konvertieren. Zum Beispiel:

type Person struct {
    Name string `json:"name"`
    Age  int    `json:"age"`
}

p := Person{Name: "Tom", Age: 29}
jsonStr, err := json.Marshal(p)
if err != nil {
    fmt.Println("json.Marshal failed:", err)
}

fmt.Println(string(jsonStr))

Der obige Code gibt die folgenden Ergebnisse aus:

{"name":"Tom","age":29}

Als nächstes können wir die Funktion json.Unmarshal() verwenden, um den JSON-String in ein Objekt zu konvertieren in Golang. Beispiel:

jsonStr := `{"name":"Tom","age":29}`

var p Person
err := json.Unmarshal([]byte(jsonStr), &p)
if err != nil {
    fmt.Println("json.Unmarshal failed:", err)
}

fmt.Println(p.Name, p.Age)

Der obige Code gibt die folgenden Ergebnisse aus:

Tom 29

Es ist zu beachten, dass beim Parsen von JSON Parameter vom Typ []Byte verwendet werden, also Die Zeichenfolge Der Typ muss durch erzwungene Typkonvertierung in den []Byte-Typ konvertiert werden.

Darüber hinaus können Sie auch direkt die Funktion json.NewDecoder() verwenden, um die JSON-Formatzeichenfolge in ein JSON-Objekt zu analysieren, zum Beispiel:

jsonStr := `{"name":"Tom","age":29}`

var data interface{}
decoder := json.NewDecoder(strings.NewReader(jsonStr))
err := decoder.Decode(&data)
if err != nil {
    fmt.Println("json.Unmarshal failed:", err)
}

fmt.Println(data)

Der obige Code wird Geben Sie die folgenden Ergebnisse aus:

map[name:Tom age:29]

Auf diese Weise können wir das JSON-Paket der Standardbibliothek in Golang verwenden, um den String-Typ in ein JSON-Objekt zu konvertieren.

Das obige ist der detaillierte Inhalt vongolang string 转json. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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