Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Unmarshal Nested JSON dengan Kekunci Dinamik Menggunakan Go?

Bagaimana untuk Unmarshal Nested JSON dengan Kekunci Dinamik Menggunakan Go?

DDD
Lepaskan: 2024-11-22 06:52:15
asal
252 orang telah melayarinya

How to Unmarshal Nested JSON with Dynamic Keys Using Go?

Menyahmarshall Nested JSON dengan Dynamic Keys

Dalam struktur JSON yang kompleks, menghadapi objek bersarang dengan kekunci yang berubah secara dinamik boleh menimbulkan cabaran semasa unmarshalling. Pertimbangkan data JSON berikut:

{
  "message": {
    "Server1.example.com": [
      {
        "application": "Apache",
        "host": {
          "name": "/^Server-[13456]/"
        },
        "owner": "User1",
        "project": "Web",
        "subowner": "User2"
      }
    ],
    "Server2.example.com": [
      {
        "application": "Mysql",
        "host": {
          "name": "/^Server[23456]/"
        },
        "owner": "User2",
        "project": "DB",
        "subowner": "User3"
      }
    ]
  },
  "response_ms": 659,
  "success": true
}
Salin selepas log masuk

Penyelesaian:

Untuk menghapuskan JSON sedemikian dengan berkesan, pertimbangkan untuk menggunakan peta[rentetan]ServerStruct untuk objek bersarang dengan kekunci dinamik . Pendekatan ini membenarkan kemasukan berbilang pelayan dengan nama yang tidak diketahui.

Berikut ialah contoh struct yang dikemas kini:

type YourStruct struct {
    Success bool
    ResponseMS int
    Servers map[string]*ServerStruct
}

type ServerStruct struct {
    Application string
    Owner string
    [...]
}
Salin selepas log masuk

Dengan menambahkan tag JSON, anda boleh mengarahkan penyahkod untuk memetakan JSON tertentu medan ke medan struct yang sepadan. Berikut ialah teg yang dikemas kini:

type YourStruct struct {
    Success  `json:"success"`
    ResponseMS `json:"response_ms"`
    Servers  `json:"-"`
}

type ServerStruct struct {
    Application string `json:"application"`
    Owner string `json:"owner"`
    [...]
}
Salin selepas log masuk

Teg json:"-" pada medan "Pelayan" memastikan penyahkod melangkau pemetaan medan JSON terus ke medan "ServerStruct". Sebaliknya, ia memetakan medan ke peta[rentetan]ServerStruct.

Pendekatan ini menyediakan penyelesaian yang fleksibel untuk membongkar objek JSON bersarang dengan kekunci dinamik, membolehkan anda mengakses data dalam setiap objek pelayan dengan mudah.

Atas ialah kandungan terperinci Bagaimana untuk Unmarshal Nested JSON dengan Kekunci Dinamik Menggunakan 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan