Heim > Backend-Entwicklung > Golang > So geben Sie JSON in Golang zurück

So geben Sie JSON in Golang zurück

王林
Freigeben: 2023-05-15 13:29:37
Original
1524 Leute haben es durchsucht

Bei der Entwicklung von Websites oder Webanwendungen ist es oft notwendig, JSON-Daten in Form von APIs zurückzugeben. Daher ist es von entscheidender Bedeutung, die Rückgabe von JSON-Daten in Golang zu beherrschen.

In diesem Artikel werden das JSON-Paket von Golang und seine grundlegende Verwendung vorgestellt. Außerdem erfahren Sie, wie Sie damit Golang-Datenstrukturen in JSON-Strings kodieren oder JSON-Strings in Golang-Datenstrukturen dekodieren.

  1. Grundlegende Verwendung

In Golang-Programmen ist es sehr einfach, das JSON-Paket zum Bearbeiten von JSON-Daten zu verwenden. JSON-Strings können in Golang-Variablen geparst werden und Golang-Variablen können in JSON-Strings codiert werden.

  1. Golang-Variablen in JSON-Strings kodieren

Wenn Sie in Golang-Programmen Golang-Variablen in JSON-Strings kodieren müssen, können Sie diese Aufgabe mit der Funktion json.Marshal() erledigen. Das Folgende ist ein Beispielprogramm, das zeigt, wie eine Go-Struktur in einen JSON-String codiert wird:

package main

import (
    "encoding/json"
    "fmt"
)

type Person struct {
    Name string
    Age  int
}

func main() {
    p := Person{"Tom", 30}

    b, err := json.Marshal(p)
    if err != nil {
        fmt.Println("error:", err)
        return
    }

    fmt.Println(string(b))
}
Nach dem Login kopieren

Die Ausgabe lautet:

{"Name":"Tom","Age":30}
Nach dem Login kopieren

Im obigen Beispielprogramm enthält die Personenstruktur zwei Felder „Name“ und „Alter“. Wir instanziieren es als Variable namens p und übergeben es an die Funktion json.Marshal(). Die Funktion gibt ein Byte-Array einer JSON-Zeichenfolge und einen optionalen Fehler zurück.

Wenn die JSON-Kodierung fehlschlägt, wird ein Fehler ungleich Null zurückgegeben. Im obigen Beispiel prüfen wir auf Fehler und geben Fehlermeldungen aus.

Hinweis: Wenn Sie json.Marshal() zum Codieren einer JSON-Zeichenfolge verwenden, ist der Name des JSON-Felds der Name des Strukturfelds und muss mit einem Großbuchstaben beginnen.

  1. JSON-Zeichenfolgen in Golang-Variablen dekodieren

Wenn Sie in Golang-Programmen JSON-Zeichenfolgen in Golang-Variablen dekodieren müssen, können Sie die Funktion json.Unmarshal() verwenden. Hier ist ein Beispielprogramm, das zeigt, wie man einen JSON-String in eine Go-Struktur dekodiert:

package main

import (
    "encoding/json"
    "fmt"
)

type Person struct {
    Name string
    Age  int
}

func main() {
    jsonStr := `{"Name":"Tom","Age":30}`
    var p Person

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

    fmt.Println(p.Name, p.Age)
}
Nach dem Login kopieren

Die Ausgabe lautet:

Tom 30
Nach dem Login kopieren

Im obigen Beispielprogramm dekodieren wir einen JSON-String mit einer leeren Person-Struktur. Die JSON-Zeichenfolge muss in ein Byte-Array umgewandelt werden, das geändert wird, um die decodierten Ergebnisse aufzunehmen. Die dekodierten Ergebnisse werden in nicht gemarshallten Variablen gespeichert.

Hier wird ein &-Operator verwendet, um die Variablenadresse an die Funktion zu übergeben und sie zur Änderung des tatsächlichen Ergebnisses zu verwenden.

Wenn die JSON-Dekodierung fehlschlägt, wird ebenfalls ein Fehler zurückgegeben und die Fehlermeldung gedruckt.

  1. JSON-Daten zurückgeben

In Golang können Sie das Paket net/http verwenden, um eine API zu erstellen und JSON-Daten zurückzugeben. Hier ist ein einfaches Beispielprogramm, das zeigt, wie man JSON-Daten mit Golang zurückgibt:

package main

import (
    "encoding/json"
    "fmt"
    "net/http"
)

type Person struct {
    Name string
    Age  int
}

func main() {
    http.HandleFunc("/person", handlePerson)
    http.ListenAndServe(":8080", nil)
}

func handlePerson(w http.ResponseWriter, r *http.Request) {
    p := Person{"Tom", 30}

    b, err := json.Marshal(p)
    if err != nil {
        fmt.Println("error:", err)
        return
    }

    w.Header().Set("Content-Type", "application/json")
    w.Write(b)
}
Nach dem Login kopieren

Im obigen Beispielprogramm haben wir einen einfachen HTTP-Server mit dem Paket net/http erstellt. Wir verwenden die Funktion http.HandleFunc(), um den Pfad /person an die HandlePerson-Handlerfunktion zu binden. Die Funktion „handlePerson“ gibt eine Personenstruktur mit den Feldern „Name“ und „Alter“ zurück. Mithilfe der Funktion json.Marshal() wird die Personenstruktur in das JSON-Format codiert. Schließlich verwenden wir die http.ResponseWriter-Schnittstelle, um die JSON-Antwort zu schreiben. Vor dem Schreiben verwenden wir die Funktion w.Header().Set(), um den Content-Type des Antwortheaders auf application/json zu setzen.

Jetzt wissen Sie, wie Sie JSON-Daten mit Golang kodieren und dekodieren und wie Sie JSON-Daten in einer HTTP-Antwort zurückgeben. Das Erlernen dieser Fähigkeiten wird Ihnen die Entwicklung von Webanwendungen erleichtern.

Das obige ist der detaillierte Inhalt vonSo geben Sie JSON in Golang zurück. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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