Wie verwende ich JSON in Go?

WBOY
Freigeben: 2023-05-11 16:46:47
Original
1894 Leute haben es durchsucht

JSON (JavaScript Object Notation) ist ein leichtes Datenaustauschformat, das häufig zum Senden von Daten vom Server an den Client und zum Übertragen von Daten zwischen verschiedenen Systemen verwendet wird. In der Go-Sprache ist die Verwendung von JSON ebenfalls sehr einfach. In diesem Artikel wird die Verwendung von Go zur Verarbeitung von JSON-Daten vorgestellt und den Lesern Best Practices für die Verwendung von JSON in Go vermittelt.

Es gibt ein integriertes JSON-Paket in der Go-Sprache, das JSON-Daten in Go-Werte marshalieren oder entmarshalieren kann, ähnlich dem JSON-Modul in Python oder JSON-Objekten in JavaScript. Die Arbeit mit JSON in Go ist in zwei wichtige Schritte unterteilt: Marshalling und Unmarshalling.

Marshalling JSON

Malesling JSON bedeutet, ein Go-Objekt in das JSON-Format zu konvertieren, damit es über das Netzwerk übertragen werden kann. Verwenden Sie in Go die Marshal()-Methode zum Marshallen von JSON.

Zum Beispiel, wenn wir eine Struktur namens Person haben:

type Person struct {
    Name string `json:"name"`
    Age  int    `json:"age"`
}
Nach dem Login kopieren
Nach dem Login kopieren

Wir können json.Marshal() verwenden, um sie in das JSON-Format zumarshallen:

p := Person{Name: "Tom", Age: 27}
jsonData, err := json.Marshal(p)
if err != nil {
    log.Println("Error in marshalling JSON")
} else {
    log.Println(string(jsonData))
}
Nach dem Login kopieren
#🎜 🎜#Im obigen Beispiel erstellen wir ein Personenobjekt mit dem Namen p, rufen die Methode json.Marshal() auf, um es in einen JSON-String zu marsalieren, und drucken dann den JSON-String aus. Die Ausgabe sollte wie folgt aussehen:

{"name":"Tom","age":27}
Nach dem Login kopieren

Wie Sie sehen können, enthält die Ausgabezeichenfolge Schlüssel-Wert-Paare, die der Personenstruktur entsprechen. Beachten Sie, dass, wenn Ihre Struktur über private Felder verfügt, diese Felder nicht in JSON gemarshallt werden. Beim Marshallen sollten öffentliche Felder verwendet werden. Darüber hinaus sollten Sie beim Marshalling mit der Marshal()-Methode auf Fehler prüfen, falls das Marshalling fehlschlägt. Wenn keine Fehler vorliegen, wird die gemarshallte JSON-Zeichenfolge zurückgegeben.

Unmarshaling JSON

Unmarshaling JSON bedeutet, JSON-Daten in Go-Objekte zu analysieren. Verwenden Sie in Go die Methode Unmarshal(), um JSON zu entmarshalieren.

Zum Beispiel, wenn wir eine Struktur namens Person haben:

type Person struct {
    Name string `json:"name"`
    Age  int    `json:"age"`
}
Nach dem Login kopieren
Nach dem Login kopieren

Wir können json.Unmarshal() verwenden, um sie zu entmarshalieren:

var person Person
jsonString := `{"name":"Tom","age":27}`
err := json.Unmarshal([]byte(jsonString), &person)
if err != nil {
    log.Println("Error in unmarshalling JSON")
} else {
    log.Println(person.Name)
    log.Println(person.Age)
}
Nach dem Login kopieren
#🎜 🎜#In Im obigen Beispiel übergeben wir die JSON-Zeichenfolge des Person-Objekts an die Methode json.Unmarshal() und verwenden &person, um den nicht gemarshallten Wert im Personenobjekt zu speichern. Beachten Sie, dass wir beim Unmarshalling denselben Namen wie das Feld in der Struktur zum Dekodieren des JSON-Schlüssels verwenden sollten, um Dekodierungsfehler zu vermeiden. Wenn beim Dekodieren des JSON ein Fehler aufgetreten ist, wird eine Fehlermeldung zurückgegeben, andernfalls wird der dekodierte JSON-Wert im Personenobjekt gespeichert.

Best Practices

Befolgen Sie bei der Verwendung von JSON in Go diese Vorgehensweisen:

Fehler richtig behandeln
    #🎜🎜 #
  1. Wenn beim Marshalling oder Unmarshalling von JSON ein Fehler auftritt, sollte der Fehler angemessen behandelt und der Benutzer auf geeignete Weise benachrichtigt werden. Wir können beispielsweise Fehlerprotokolle in eine Protokolldatei schreiben oder Fehlermeldungen an den Benutzer zurücksenden.

JSON-Tags verwenden

  1. Sie können JSON-Tags verwenden, um Mitglieds-Tags zu Strukturfeldern hinzuzufügen, um Go-Objektdaten in das erwartete JSON-Format zu marsalieren. Das JSON-Tag enthält normalerweise JSON-Segmentschlüssel, damit Entwickler beim Marshalling ihre Eigenschaftsnamen angeben können.

Verwendung leerer Strukturen vermeiden

  1. Verwenden Sie leere Strukturen in Go, um Daten ohne Inhalt darzustellen. Verwenden Sie beim Marshallen von JSON-Daten keine leeren Strukturen, sondern stattdessen Null. Wenn Sie eine leere Struktur verwenden, ist der gemarshallte JSON möglicherweise zu ausführlich.

Explizite Typzusicherung

  1. Verwenden Sie beim Unmarshalling von JSON-Daten immer explizite Typzusicherungen, um sicherzustellen, dass der Datentyp mit dem in übereinstimmt Geben Sie Übereinstimmung ein. Wenn Sie mehrere JSON-Typen verarbeiten möchten, verwenden Sie Typwechselanweisungen, um unnötige Fehler zu vermeiden.

Bibliotheken von Drittanbietern verwenden

  1. Wenn Sie weitere erweiterte Funktionen benötigen, sollten Sie die verfügbaren JSON-Bibliotheken von Drittanbietern verwenden. Zu den häufig verwendeten JSON-Bibliotheken von Drittanbietern gehören json-iterator/go, ghodss/yaml, easyjson usw.
Zusammenfassung

In diesem Artikel haben wir die grundlegenden Vorgänge der Verwendung von JSON in der Go-Sprache vorgestellt, einschließlich Marshalling und Unmarshaling von JSON-Daten. Durch die Befolgung von Best Practices wird sichergestellt, dass Ihr Code lesbar, wartbar und erweiterbar ist. Mit diesen Vorgehensweisen können Sie die JSON-Funktionen in Go nutzen und JSON-bezogenen Code besser schreiben.

Das obige ist der detaillierte Inhalt vonWie verwende ich JSON in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!