Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk unmarshal json dengan medan dan kekunci yang tidak diketahui

Bagaimana untuk unmarshal json dengan medan dan kekunci yang tidak diketahui

WBOY
WBOYke hadapan
2024-02-06 10:33:11655semak imbas

如何使用未知字段和键解组 json

Kandungan soalan

Dari bahagian hadapan saya mendapat contoh json ini:

{
  "properties":{"unknown key": "unknown value","unknown key2": "unknown value 2"}
}

Saya mula menghuraikannya dengan map[string]antara muka{} tetapi ia tidak berfungsi. Saya juga tidak tahu berapa banyak yang saya boleh perolehi dalam bidang ini. Boleh 10 atau 1.

Kod:

type test struct {
    p map[string]string `json:"properties"`
}

func main() {
    var t test

    body := `
    {
        "properties":{"unknown key": "unknown value","unknown key2": "unknown value 2"}
    }
    `

    json.Unmarshal([]byte(body), &t)

    fmt.Println(t.p)
}

Kod ini sentiasa mengembalikan peta kosong.


Jawapan betul


Anda harus mengeksport medan struct yang sepatutnya tidak dikawal, contohnya:

type test struct {
    P map[string]string `json:"properties"`
}

Lihathttps://www.php.cn/link/eaf76caaba574ebf8e825f321c14ba29

Atas ialah kandungan terperinci Bagaimana untuk unmarshal json dengan medan dan kekunci yang tidak diketahui. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam