Konvertieren Sie JSON in Struct in Go

Sheeraz Gul 20 Juni 2023
  1. Verwenden Sie die Unmarshal-Methode, um JSON in Struct in Go zu konvertieren
  2. Konvertieren Sie ein Array von JSON in Struct in Go
  3. Konvertieren Sie ein verschachteltes JSON in Struct in Go
Konvertieren Sie JSON in Struct in Go

Dieses Tutorial zeigt, wie Sie JSON in GoLang in eine Struktur konvertieren.

Verwenden Sie die Unmarshal-Methode, um JSON in Struct in Go zu konvertieren

Das encoding/json-Paket von GoLang stellt eine Funktion Unmarshal bereit, die JSON-Daten in das Byte-Format konvertiert. Diese Funktion kann die strukturierten und nicht strukturierten JSON-Daten in die Form []byte parsen.

Wir können diese Byte-Konvertierung verwenden, um den JSON in eine Struktur zu konvertieren. Versuchen wir ein Beispiel, um JSON mit der Methode Unmarshal in eine Struktur zu konvertieren:

package main

import (
    "encoding/json"
    "fmt"
)

type Employee struct {
    Name     string
    ID       int
    Salary   int
    Position string
}

func main() {
    EmployeeJSON := `{"Name": "Sheeraz", "ID": 10, "Salary": 3000, "Position": "Senior Developer" }`

    var employees Employee

    json.Unmarshal([]byte(EmployeeJSON), &employees)

    fmt.Printf("Name: %s, ID: %d , Salary: %d , Position: %s", employees.Name, employees.ID, employees.Salary, employees.Position)

    fmt.Println("\n", employees)
}

Der obige Code konvertiert das angegebene JSON in eine Struktur, indem die Methode Unmarshal der JSON-Standardbibliothek von GoLang verwendet wird. Siehe die Ausgabe:

Name: Sheeraz, ID: 10 , Salary: 3000 , Position: Senior Developer

{Sheeraz 10 3000 Senior Developer}

Program exited.

Konvertieren Sie ein Array von JSON in Struct in Go

Wie wir sehen können, konvertiert das obige Beispiel ein einzelnes JSON in eine Struktur, aber was ist, wenn wir ein Array von JSON haben? Versuchen wir ein Beispiel, um das Array von JSON in eine Struktur zu konvertieren:

package main

import (
    "encoding/json"
    "fmt"
)

type Employee struct {
    Name     string
    ID       int
    Salary   int
    Position string
}

func main() {
    EmployeeJSON := `[{"Name": "Sheeraz", "ID": 10, "Salary": 3000, "Position": "Senior Developer" },
    {"Name": "Jack", "ID": 20, "Salary": 2000, "Position": "Junior Developer" },
    {"Name": "John", "ID": 30, "Salary": 1500, "Position": "Junior Developer" },
    {"Name": "Mike", "ID": 40, "Salary": 1000, "Position": "Intern" }
    ]`

    var employees []Employee

    json.Unmarshal([]byte(EmployeeJSON), &employees)

    fmt.Printf("Employees Structs : %+v", employees)
}

Der obige Code konvertiert das Array von JSON in ein Array von Strukturen. Siehe die Ausgabe:

Employees Structs : [
{Name:Sheeraz ID:10 Salary:3000 Position:Senior Developer}
{Name:Jack ID:20 Salary:2000 Position:Junior Developer}
{Name:John ID:30 Salary:1500 Position:Junior Developer}
{Name:Mike ID:40 Salary:1000 Position:Intern}]
Program exited.

Konvertieren Sie ein verschachteltes JSON in Struct in Go

JSONs werden auch in einer verschachtelten Form erstellt, in der ein Feld in JSON ein anderes Feld enthält. Um diese Art von JSONS zu konvertieren, müssen wir verschachtelte Strukturen erstellen.

Sehen wir uns ein Beispiel an:

package main

import (
    "encoding/json"
    "fmt"
)

type EmployeeType struct {
    Gender   string
    Contract string
}

type Employee struct {
    Name         string
    ID           int
    Salary       int
    Position     string
    EmployeeType EmployeeType
}

func main() {
    EmployeeJSON := `{"Name": "Sheeraz", "ID": 10, "Salary": 3000, "Position": "Senior Developer", "EmployeeType": {"Gender": "Male" ,"Contract": "Fulltime"}  }`

    var employees Employee

    json.Unmarshal([]byte(EmployeeJSON), &employees)

    fmt.Printf("Name: %s, ID: %d , Salary: %d , Position: %s, Gender: %s, Contract: %s",
        employees.Name, employees.ID, employees.Salary, employees.Position, employees.EmployeeType.Gender, employees.EmployeeType.Contract)

    fmt.Println("\n", employees)
}

Der obige Code konvertiert ein verschachteltes JSON-Objekt in eine verschachtelte Struktur. Siehe die Ausgabe:

Name: Sheeraz, ID: 10 , Salary: 3000 , Position: Senior Developer, Gender: Male, Contract: Fulltime
{Sheeraz 10 3000 Senior Developer {Male Fulltime}}

Program exited.
Sheeraz Gul avatar Sheeraz Gul avatar

Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.

LinkedIn Facebook

Verwandter Artikel - Go JSON