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
Barbara Streisandasal
2024-11-15 13:38:021011semak imbas

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
}

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"`
}

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)

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}

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!

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