Heim Backend-Entwicklung Golang JSON-, XML- und Protobuf-Kodierungs- und Dekodierungsmethoden für Golang-Funktionen

JSON-, XML- und Protobuf-Kodierungs- und Dekodierungsmethoden für Golang-Funktionen

May 18, 2023 am 08:00 AM
golang (go语言) 编解码 (encoding/decoding) json/xml/protobuf

Golang ist eine Open-Source-Programmiersprache, die häufig bei der Entwicklung von Webanwendungen verwendet wird. In Golang bietet es nicht nur eine umfangreiche Funktionsbibliothek, sondern auch eine Vielzahl von Kodierungs- und Dekodierungsmethoden, einschließlich JSON, XML und Protobuf. In diesem Artikel werden die JSON-, XML- und Protobuf-Codierungs- und Decodierungsmethoden von Golang-Funktionen sowie deren Verwendung vorgestellt.

1. JSON-Kodierung und -Dekodierung

1.1 Kodierung

In Golang ist die Kodierung der Struktur in das JSON-Format sehr einfach. Verwenden Sie einfach die Marshal-Funktion im JSON-Paket, um die Struktur in JSON-Daten zu kodieren.

Zum Beispiel haben wir eine Struktur wie folgt:

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

Wenn wir diese Struktur in das JSON-Format kodieren möchten, können wir dies tun:

s := Student{
    Name:    "张三",
    Age:     18,
    Address: "北京市朝阳区",
}
b, err := json.Marshal(s)
if err != nil {
    //错误处理
}
fmt.Println(string(b))
Nach dem Login kopieren
#🎜 🎜 #Das Ausgabe-JSON-Format lautet wie folgt:

{
    "name": "张三",
    "age": 18,
    "address": "北京市朝阳区"
}
Nach dem Login kopieren

1.2 Dekodierung

In ähnlicher Weise ist es auch sehr einfach, die Unmarshal-Funktion im JSON-Paket zu verwenden, um JSON-Daten zu dekodieren eine Struktur. Übergeben Sie einfach die JSON-Daten an die Unmarshal-Funktion.

Zum Beispiel haben wir die folgenden JSON-Daten:

data := `{
    "name": "李四",
    "age": 20,
    "address": "上海市浦东新区"
}`
Nach dem Login kopieren

Wenn wir diese JSON-Daten in eine Struktur dekodieren möchten, können wir dies tun:

var s Student
err := json.Unmarshal([]byte(data), &s)
if err != nil {
    //错误处理
}
fmt.Println(s.Name, s.Age, s.Address)
Nach dem Login kopieren
# 🎜🎜 #Das Ausgabeergebnis ist:

李四 20 上海市浦东新区
Nach dem Login kopieren
Nach dem Login kopieren

2. XML-Kodierung und -Dekodierung

2.1 Kodierung

In Golang kann die Struktur auch kodiert werden als XML-Format. Verwenden Sie einfach die Marshal-Funktion im Paket „encoding/xml“.

Zum Beispiel haben wir eine Struktur wie folgt:

type Student struct {
    Name    string `xml:"name"`
    Age     int    `xml:"age"`
    Address string `xml:"address"`
}
Nach dem Login kopieren

Wenn wir diese Struktur in das XML-Format kodieren möchten, können wir dies tun:

s := Student{
    Name:    "张三",
    Age:     18,
    Address: "北京市朝阳区",
}
b, err := xml.Marshal(s)
if err != nil {
    //错误处理
}
fmt.Println(string(b))
Nach dem Login kopieren
#🎜 🎜#Das Ausgabe-XML-Format ist wie folgt:

<Student>
    <name>张三</name>
    <age>18</age>
    <address>北京市朝阳区</address>
</Student>
Nach dem Login kopieren

2.2 Dekodierung

In ähnlicher Weise ist es auch sehr einfach, die Unmarshal-Funktion im Paket „coding/xml“ zum Dekodieren von XML zu verwenden Daten in eine Struktur. Übergeben Sie einfach die XML-Daten an die Unmarshal-Funktion.

Zum Beispiel haben wir die folgenden XML-Daten:

data := `
<Student>
    <name>李四</name>
    <age>20</age>
    <address>上海市浦东新区</address>
</Student>`
Nach dem Login kopieren

Wenn wir diese XML-Daten in eine Struktur dekodieren möchten, können wir dies tun:

var s Student
err := xml.Unmarshal([]byte(data), &s)
if err != nil {
    //错误处理
}
fmt.Println(s.Name, s.Age, s.Address)
Nach dem Login kopieren
# 🎜🎜 #Das Ausgabeergebnis ist:

李四 20 上海市浦东新区
Nach dem Login kopieren
Nach dem Login kopieren

3. Protobuf-Kodierung und -Dekodierung

3.1 Installieren Sie Protobuf

Bevor Sie die Protobuf-Kodierung und -Dekodierung durchführen, müssen Sie Zuerst muss Protobuf installiert werden. Die Installationsmethode ist wie folgt:

Laden Sie die Protobuf-Installationsdatei herunter. Download-Adresse: https://github.com/protocolbuffers/protobuf/releases

Extrahieren Sie die Installationsdatei und geben Sie das dekomprimierte Verzeichnis ein.
  1. Führen Sie den folgenden Befehl aus, um Protobuf zu installieren:
  2. ./configure
    make
    make check
    sudo make install
    sudo ldconfig
    Nach dem Login kopieren
  3. Überprüfen Sie, ob Protobuf erfolgreich installiert wurde:
protoc --version
Nach dem Login kopieren
# 🎜🎜# Wenn Informationen wie die folgenden ausgegeben werden, wurde Protobuf erfolgreich installiert:
    libprotoc 3.6.1
    Nach dem Login kopieren
  1. 3.2 Schreiben Sie eine Protobuf-Datei
Vor dem Kodieren und Dekodieren von Protobuf müssen Sie schreiben eine Protobuf-Datei. In der Protobuf-Datei müssen Sie den Nachrichtentyp definieren und jedem Feld ein Tag zuweisen.

Zum Beispiel schreiben wir eine Protobuf-Datei wie folgt:

syntax = "proto3";
package main;

message Student {
    string name = 1;
    int32 age    = 2;
    string address = 3;
}
Nach dem Login kopieren

In Protobuf ist Tag ein ganzzahliger Wert, der zur Identifizierung jedes Felds verwendet wird. In diesem Beispiel ist das Namensfeld auf 1, das Altersfeld auf 2 und das Adressfeld auf 3 gesetzt.

3.3 Codierung

In Golang ist die Codierung mit Protobuf sehr einfach. Verwenden Sie einfach die Marshal-Funktion im Protobuf-Paket.

Zum Beispiel haben wir eine Struktur wie folgt:

s := &pb.Student{
    Name:    "张三",
    Age:     18,
    Address: "北京市朝阳区",
}
b, err := proto.Marshal(s)
if err != nil {
    //错误处理
}
fmt.Println(string(b))
Nach dem Login kopieren

Die Ausgabe-Protobuf-Kodierung ist wie folgt:

1:6
2:18
3:"北京市朝阳区"
Nach dem Login kopieren

3.4 Dekodierung

#🎜🎜 #In ähnlicher Weise ist es auch sehr einfach, die Unmarshal-Funktion im Protobuf-Paket zu verwenden, um Protobuf-Daten in eine Struktur zu dekodieren. Übergeben Sie einfach die Protobuf-Daten und den Nachrichtentyp an die Unmarshal-Funktion.

Zum Beispiel haben wir die folgenden Protobuf-Daten:

data := []byte{0x0a, 0x06, 0xe5, 0xbc, 0xa0, 0xe4, 0xb8, 0x89, 0x10, 0x12, 0x0f, 0xe5, 0x8c, 0x97, 0xe4, 0xba, 0xac, 0xe5, 0x9b, 0xbd, 0xe5, 0x8c, 0x9d, 0xe5, 0x8c, 0x97, 0xe5, 0x8c, 0x80, 0x1a, 0x0d, 0xe5, 0x8c, 0x97, 0xe4, 0xba, 0xac, 0xe5, 0x9b, 0xbd, 0xe5, 0x8c, 0x9d}
Nach dem Login kopieren

Wenn wir diese Protobuf-Daten in eine Struktur dekodieren möchten, können wir dies tun:

var s pb.Student
err := proto.Unmarshal(data, &s)
if err != nil {
    //错误处理
}
fmt.Println(s.Name, s.Age, s.Address)
Nach dem Login kopieren
# 🎜🎜 #Das Ausgabeergebnis ist:

张三 18 北京市朝阳区
Nach dem Login kopieren
Zusammenfassung

In Golang werden verschiedene Kodierungs- und Dekodierungsmethoden bereitgestellt, um den Anforderungen verschiedener Szenarien gerecht zu werden. JSON-Kodierung und -Dekodierung, XML-Kodierung und -Dekodierung sowie Protobuf-Kodierung und -Dekodierung sind häufig verwendete Kodierungs- und Dekodierungsmethoden und haben eine breite Anwendbarkeit. Die Beherrschung dieser Codecs kann uns helfen, Netzwerkanwendungen einfacher zu entwickeln.

Das obige ist der detaillierte Inhalt vonJSON-, XML- und Protobuf-Kodierungs- und Dekodierungsmethoden für Golang-Funktionen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Golang und FFmpeg: Technische Umsetzung von Live-Streaming Golang und FFmpeg: Technische Umsetzung von Live-Streaming Sep 27, 2023 pm 12:28 PM

Golang und FFmpeg: Die technische Umsetzung von Live-Übertragungs-Streaming erfordert spezifische Codebeispiele. Einführung: In den letzten Jahren hat die rasante Entwicklung und Popularisierung der Live-Übertragungstechnologie dazu geführt, dass Live-Übertragungen immer beliebter werden. Unter diesen ist die Echtzeit-Streaming-Technologie der Schlüssel zur Realisierung von Live-Übertragungen. In diesem Artikel wird erläutert, wie Sie mit der Programmiersprache Golang und dem Multimedia-Verarbeitungstool FFmpeg die technische Implementierung von Live-Streaming realisieren und einige zugehörige Codebeispiele bereitstellen. 1. Einführung in die Golang- und FFmpeg-Technologie 1.1

Golang-Leistungstestmethoden und -tools Golang-Leistungstestmethoden und -tools Aug 10, 2023 am 09:24 AM

Einführung in die Golang-Leistungstestmethoden und -tools: In der Softwareentwicklung sind Leistungstests ein wichtiges Bindeglied. Mit Leistungstests können Entwickler die Leistung eines Programms überprüfen und potenzielle Leistungsengpässe identifizieren. Als leistungsstarke Programmiersprache bietet Golang auch einige Methoden und Tools, die Entwicklern bei der Durchführung von Leistungstests helfen. In diesem Artikel werden mehrere häufig verwendete Leistungstestmethoden und -tools in Golang mit Codebeispielen vorgestellt. 1. Benchmark-Tests Golang bietet ein integriertes Benchmark-Test-Framework, das einfach durchgeführt werden kann

Golang und FFmpeg: So implementieren Sie die Audiodekodierung und -kodierung Golang und FFmpeg: So implementieren Sie die Audiodekodierung und -kodierung Sep 27, 2023 am 10:49 AM

Golang und FFmpeg: Für die Implementierung der Audiodekodierung und -kodierung sind spezifische Codebeispiele erforderlich. Einführung: Mit der kontinuierlichen Weiterentwicklung der Multimedia-Technologie ist die Audioverarbeitung zu einem unverzichtbaren Bestandteil vieler Anwendungen geworden. In diesem Artikel wird die Verwendung von Golang- und FFmpeg-Bibliotheken zur Implementierung von Audio-Dekodierungs- und Kodierungsfunktionen vorgestellt und spezifische Codebeispiele bereitgestellt. 1. Was ist FFmpeg? FFmpeg ist ein leistungsstarkes Open-Source-Multimedia-Verarbeitungstool, das Audio und Video dekodieren, kodieren, konvertieren und streamen kann.

Golang-Bildverarbeitung: Erfahren Sie, wie Sie einen Gaußschen Unschärfeeffekt auf Bildern erzielen Golang-Bildverarbeitung: Erfahren Sie, wie Sie einen Gaußschen Unschärfeeffekt auf Bildern erzielen Aug 17, 2023 pm 12:06 PM

Golang-Bildverarbeitung: Erfahren Sie, wie Sie den Gaußschen Unschärfeeffekt von Bildern erzielen. Einführung: Die Bildverarbeitung spielt eine wichtige Rolle im Bereich Computer Vision. In der Bildverarbeitung ist die Gaußsche Unschärfe eine häufig verwendete Technik zum Verwischen von Bildern, um Rauschen und Details im Bild zu reduzieren. In diesem Artikel erfahren Sie, wie Sie mit Golang den Gaußschen Unschärfeeffekt von Bildern erzielen, einschließlich Codebeispielen im Anhang. Umgebungsvorbereitung: Stellen Sie zunächst sicher, dass die Golang-Entwicklungsumgebung korrekt installiert wurde. Per Terminal oder Eingabeaufforderung

Golang und FFmpeg: Push-Technologie für Online-Live-Streaming-Medien Golang und FFmpeg: Push-Technologie für Online-Live-Streaming-Medien Sep 29, 2023 pm 02:22 PM

Golang und FFmpeg: Um die Push-Technologie von Online-Live-Streaming-Medien zu implementieren, sind spezifische Codebeispiele erforderlich. Zusammenfassung: Mit der Popularität von Online-Live-Übertragungen achten immer mehr Entwickler darauf, wie die Push-Technologie von Streaming-Medien implementiert werden kann . In diesem Artikel wird erläutert, wie Sie mit Golang und FFmpeg den Vorstoß von Online-Live-Streaming-Medien realisieren. Anhand konkreter Codebeispiele werden die Leser Schritt für Schritt zum Verständnis des Aufbaus eines Push-Systems auf Basis von Golang und FFmpeg geführt. 1. Einführung in die Golang-Sprache Golang

So verwenden Sie Golang zum schrittweisen Laden und Komprimieren von Bildern So verwenden Sie Golang zum schrittweisen Laden und Komprimieren von Bildern Aug 18, 2023 pm 12:46 PM

So verwenden Sie Golang zum schrittweisen Laden und Komprimieren von Bildern 1. Einführung Heutzutage ist die Verwendung von Bildern im Internet weit verbreitet. Allerdings treten häufig auch Probleme wie das langsame Laden großer Bilder und die fehlende progressive Anzeige auf, die das Benutzererlebnis beeinträchtigen. In diesem Artikel erfahren Sie, wie Sie mit Golang Bilder schrittweise laden und komprimieren, um die Ladegeschwindigkeit und das Benutzererlebnis zu verbessern. 2. Progressives Laden Das sogenannte progressive Laden bedeutet, dass vor dem vollständigen Laden des Bildes nach und nach ein kleiner Teil seiner Qualität angezeigt werden kann. existieren

Golang- und Template-Paket: Schaffen Sie ein reibungsloses Web-Erlebnis Golang- und Template-Paket: Schaffen Sie ein reibungsloses Web-Erlebnis Jul 17, 2023 am 10:57 AM

Golang- und Template-Paket: Schaffen Sie ein reibungsloses Web-Erlebnis. Im heutigen Internetzeitalter ist das Benutzererlebnis von Webseiten entscheidend für den Erfolg der Website. Da sich die Webtechnologie ständig weiterentwickelt und innoviert, müssen Entwickler effiziente und übersichtliche Tools verwenden, um reibungslose Benutzeroberflächen zu erstellen. Im Bereich der Golang-Entwicklung ist das Template-Paket ein leistungsstarkes Tool, das Entwicklern hilft, schnelle und wartbare Webseitenvorlagen zu implementieren. Das Template-Paket ist die Template-Engine, die mit der Golang-Standardbibliothek geliefert wird

Tabellengesteuerte Testpraxis in Golang Tabellengesteuerte Testpraxis in Golang Aug 09, 2023 pm 06:09 PM

Einführung in die tabellengesteuerte Testpraxis in Golang: Im Softwareentwicklungsprozess ist das Testen ein sehr wichtiges Bindeglied. Es kann Entwicklern helfen, Probleme im Programm zu finden und zu beheben und die Qualität und Zuverlässigkeit der Software zu verbessern. Tabellengesteuertes Testen ist eine häufig verwendete Testmethode, die effizienter testen und eine bessere Codeabdeckung bieten kann. Was ist tabellengesteuertes Testen? Tabellengesteuertes Testen ist eine Testmethode, die Testdaten und erwartete Ergebnisse in einer Tabelle speichert und dann basierend auf den Daten in der Tabelle mehrere Testfälle gleichzeitig ausführt

See all articles