Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Menyahserialisasi Struktur JSON Bersarang Dinamik dalam Go?

Bagaimana untuk Menyahserialisasi Struktur JSON Bersarang Dinamik dalam Go?

Barbara Streisand
Lepaskan: 2024-11-15 13:38:02
asal
1017 orang telah melayarinya

How to Deserialize Dynamic Nested JSON Structures in Go?

Menyahkod Struktur JSON Dinamik Bersarang dalam Go

Dalam Go, penyahserian data JSON dengan struktur dinamik bersarang boleh menjadi mencabar. Pertanyaan baru-baru ini menggambarkan isu ini:

{
    "status": "OK",
    "status_code": 100,
    "sms": {
        "79607891234": {
            "status": "ERROR",
            "status_code": 203,
            "status_text": "Нет текста сообщения"
        },
        "79035671233": {
            "status": "ERROR",
            "status_code": 203,
            "status_text": "Нет текста сообщения"
        },
        "79105432212": {
            "status": "ERROR",
            "status_code": 203,
            "status_text": "Нет текста сообщения"
        }
    },
    "balance": 2676.18
}
Salin selepas log masuk

Untuk menyahsiri data sedemikian, kami perlu menggunakan peta untuk memodelkan senarai dinamik status SMS. Berikut ialah kod yang diubah suai:

type SMSPhone struct {
    Status     string `json:"status"`
    StatusCode int    `json:"status_code"`
    StatusText string `json:"status_text"`
}

type SMSSendJSON struct {
    Status     string              `json:"status"`
    StatusCode int                 `json:"status_code"`
    Sms        map[string]SMSPhone `json:"sms"`
    Balance    float64             `json:"balance"`
}
Salin selepas log masuk

Sekarang, Nyahmarshaling data JSON dengan struct diubah suai ini:

var result SMSSendJSON

if err := json.Unmarshal([]byte(src), &result); err != nil {
    panic(err)
}
fmt.Printf("%+v", result)
Salin selepas log masuk

Akan menyahsiri struktur bersarang dinamik dengan betul, menghasilkan:

{Status:OK StatusCode:100 Sms:map[79035671233:{Status:ERROR StatusCode:203 StatusText:Нет текста сообщения} 79105432212:{Status:ERROR StatusCode:203 StatusText:Нет текста сообщения} 79607891234:{Status:ERROR StatusCode:203 StatusText:Нет текста сообщения}] Balance:2676.18}
Salin selepas log masuk

Kunci dalam hasil. Peta SMS sepadan dengan nombor telefon dinamik dan nilainya ialah status SMS masing-masing.

Atas ialah kandungan terperinci Bagaimana untuk Menyahserialisasi Struktur JSON Bersarang Dinamik dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan