Konvertieren Sie JSON in Struct in Go
-
Verwenden Sie die
Unmarshal
-Methode, um JSON in Struct in Go zu konvertieren - Konvertieren Sie ein Array von JSON in Struct in Go
- Konvertieren Sie ein verschachteltes 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 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