Heim >Backend-Entwicklung >Golang >Ausführliche Erklärung zur Durchführung der Json-Konvertierung in die Go-Sprache

Ausführliche Erklärung zur Durchführung der Json-Konvertierung in die Go-Sprache

PHPz
PHPzOriginal
2023-04-10 14:21:33920Durchsuche

Mit der rasanten Entwicklung modernster Technologien wie Cloud Computing, Big Data und künstlicher Intelligenz wurden in den letzten Jahren auch Computerprogrammiersprachen kontinuierlich verbessert und aktualisiert. Als von Google entwickelte Programmiersprache hat die Go-Sprache (Golang) aufgrund ihrer Einfachheit, Lesbarkeit, Effizienz und Fähigkeit, Multi-Core-CPUs voll auszunutzen, immer mehr Aufmerksamkeit und Anwendung gefunden. In der Go-Sprache ist die Verarbeitung von Json-Daten eine sehr häufige Aufgabe. Wie konvertiert man also Json in die Go-Sprache? Detaillierte Antworten finden Sie weiter unten.

Zunächst müssen Sie die JSON-Verarbeitungsbibliothek in Golang verstehen. Sie bietet zwei Methoden, Encode und Decode, die zum Abschluss der Codierung bzw. Decodierung von Json-Daten verwendet werden der Dekodiermethode.

In Golangs Standardbibliothek encoding/json wird eine Funktion namens Unmarshal() bereitgestellt. Der Funktionsprototyp lautet wie folgt:encoding/json 中,提供了一个叫Unmarshal()函数,函数原型如下

func Unmarshal(data []byte, v interface{}) error

参数说明:

  • data []byte: 要解码的JSON数据;
  • v interface{}: 运用结构体类型中成员变量的名称和JSON中的key进行映射来对接JSON数据的,通常情况下这个参数传入的结构体是通过给定JSON中的某些key来做特殊处理的;

下面通过一个示例来说明具体使用方法:

假设有一个Web API可以向客户端提供一个JSON数据,该JSON数据包含有一个字符串键值对 "name":"Wade", 一个整型键值对 "age":33,和一个浮点型键值对 "score":98.5。现在我们需要将这个JSON数据进行解码并存在一个结构体变量中。

定义结构体如下所示:

type Player struct {
    Name  string  `json:"name"`
    Age   int     `json:"age"`
    Score float64 `json:"score"`
}

在 main() 函数中解码 JSON 数据,一行代码即可完成:

func main() {
    jsonStr := `{"name":"Wade","age":33,"score":98.5}`
    var player Player
    json.Unmarshal([]byte(jsonStr), &player)
    fmt.Println(player) // 输出:{Wade 33 98.5}
}

解析上述代码:

  • jsonStr:需要解析的 Json 字符串;
  • var player Player: 定义了一个 Player 类型的变量;
  • json.Unmarshal():将 Json 解码到 player 变量中;
  • fmt.Println(player):以 Player
    type Team struct {
        ID      int      `json:"id"`
        Name    string   `json:"name"`
        Members []Player `json:"members"`
    }
    
    func main() {
        jsonStr := `{"id":1,"name":"Lakers","members":[{"name":"Wade","age":33,"score":98.5},{"name":"James","age":36,"score":100}]}`
    
        var team Team
        json.Unmarshal([]byte(jsonStr), &team)
        fmt.Printf("%+v\n", team)
    }
  • Parameterbeschreibung:
    data []byte: Zu dekodierende JSON-Daten;

  • v interface{}: Verwenden Sie den Namen der Mitgliedsvariablen im Strukturtyp und den Schlüssel in JSON, um eine Zuordnung zum Verbinden von JSON-Daten durchzuführen. Normalerweise wird die von diesem Parameter übergebene Struktur speziell verarbeitet, indem bestimmte Schlüssel in JSON angegeben werden.

    Das Folgende ist ein Beispiel, um die spezifische Verwendung zu veranschaulichen:

    Angenommen, es gibt eine Web-API kann dem Client JSON-Daten bereitstellen, die ein Zeichenfolgen-Schlüssel-Wert-Paar "name":"Wade" und ein ganzzahliges Schlüssel-Wert-Paar "age" :33enthalten > und ein Gleitkomma-Schlüssel-Wert-Paar "score":98,5. Jetzt müssen wir diese JSON-Daten dekodieren und in einer Strukturvariablen speichern.

    Die Definitionsstruktur lautet wie folgt:

    rrreee

    Dekodieren Sie die JSON-Daten in der Funktion main(), die in einer Codezeile abgeschlossen werden kann:

    rrreee

    Parsen Sie den obigen Code: 🎜
    • jsonStr: Json-String, der analysiert werden muss; 🎜
    • var player Player: Definiert eine Variable vom Typ Player; >json.Unmarshal() : Json in die Variable player dekodieren; 🎜
    • fmt.Println(player): Formatieren mit Player Typ und Ausgabe. 🎜🎜🎜Aus dem obigen Code ist nicht schwer zu erkennen, dass der JSON-Dekodierungsprozess in der Go-Sprache sehr einfach und leicht zu lesen ist. 🎜🎜Wenn wir außerdem eine Struktur haben, die mehrere Instanzen des Player-Typs enthält, können wir damit wie folgt umgehen: 🎜rrreee🎜Im obigen Code ist die Mitgliedsvariable Members in der Struktur Team ein Player-Array. Wir können diese Funktion verwenden Wird zum Parsen komplexer JSON-Daten verwendet. 🎜🎜Bis hier haben wir vorgestellt, wie die Go-Sprache die JSON-Konvertierung durchführt, aber das ist noch nicht alles. In der tatsächlichen Entwicklung stoßen wir möglicherweise auf einige sehr komplexe verschachtelte JSON-Strukturen, z. B. mehrschichtige Verschachtelungen, Arrays auf derselben Ebene usw. Zu diesem Zeitpunkt müssen wir die JSON-Dekodierungsbibliothek genau verstehen und sie flexibel verwenden. 🎜🎜Zusammenfassung: 🎜🎜Durch diesen Artikel haben wir gelernt, wie man die JSON-Dekodierungsbibliothek verwendet, um die Json-Konvertierung in die Go-Sprache abzuschließen. Wir haben auch Beispielcode verwendet, um den detaillierten Vorgang zu demonstrieren. Dies ist eine sehr grundlegende und häufig verwendete Funktion. Bei der tatsächlichen Programmierung stoßen wir häufig auf diese Situation und verwenden sie. Die Beherrschung dieser Grundoperation wird uns eine große Hilfe dabei sein, Programmierarbeiten effizienter abzuschließen. 🎜

Das obige ist der detaillierte Inhalt vonAusführliche Erklärung zur Durchführung der Json-Konvertierung in die Go-Sprache. 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