Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Menyahmarshal Struktur Data JSON Tidak Diketahui dalam Go?

Bagaimana untuk Menyahmarshal Struktur Data JSON Tidak Diketahui dalam Go?

Susan Sarandon
Susan Sarandonasal
2024-11-26 01:15:15638semak imbas

How to Unmarshal Unknown JSON Data Structures in Go?

Data JSON Unmarshal Format Tidak Diketahui

JSON yang disediakan mengikut corak tertentu:

{
SUBJECT1: [{Student_Name1: Grade, Student_Name2: Grade, ... , Student_Name3: Grade, timestamp: Timestamp(...)}],
SUBJECT2: [{Student_Name4: Grade, Student_Name6: Grade, ... , Student_Name5: Grade, timestamp: Timestamp(...)}]
...
SUBJECTN: [{Student_Name1: Grade, Student_Name6: Grade, ... , Student_Name9: Grade, timestamp: Timestamp(...)}]
}

Matlamat: Unmarshal JSON ke dalam struct GoLang untuk dikembalikan sebagai JSON objek.

Penyelesaian:

Pilihan 1: Menggunakan peta[rentetan]antaramuka{}

Memandangkan kekunci JSON adalah tidak diketahui, kita boleh menggunakan peta[rentetan]antara muka{} untuk menyahmarshal muatan.

var grades map[string]interface{}
err := json.Unmarshal([]byte(jsonString), &grades)
fmt.Println(err)
fmt.Printf("%#v\n", grades)

Pilihan 2: Menggunakan Struct

Jika struct dikehendaki, gunakan tag json:"-" untuk mengabaikan medan semasa JSON marshalling/ unmarshalling.

type GradeData struct {
    Grades map[string]interface{} `json:"-"`
}

err := json.Unmarshal([]byte(jsonString), &gradesData.Grades)
fmt.Println(err)
fmt.Printf("%#v\n", gradesData)

Atas ialah kandungan terperinci Bagaimana untuk Menyahmarshal Struktur Data JSON Tidak Diketahui dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn