Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Menyahmarshalkan Objek JSON ke dalam Susunan Struktur dalam Go?

Bagaimana untuk Menyahmarshalkan Objek JSON ke dalam Susunan Struktur dalam Go?

Barbara Streisand
Barbara Streisandasal
2024-11-29 13:26:19318semak imbas

How to Unmarshal a JSON Object into an Array of Structs in Go?

Cara Menyahmarshal JSON kepada Susunan Objek dalam Go

Soalan

Bagaimanakah saya boleh menyahmarshal JSON berikut ke dalam tatasusunan objek dalam Go bahasa?

{
    "1001": {"level":10, "monster-id": 1001, "skill-level": 1, "aimer-id": 301},
    "1002": {"level":12, "monster-id": 1002, "skill-level": 1, "aimer-id": 302},
    "1003": {"level":16, "monster-id": 1003, "skill-level": 2, "aimer-id": 303}
}

Penyelesaian

JSON yang disediakan memerlukan beberapa pengubahsuaian supaya sah, seperti menambah koma antara pasangan nilai kunci dalam objek peringkat atas:

{
   "1001":{
      "level":10,
      "monster-id":1001,
      "skill-level":1,
      "aimer-id":301
   },
   "1002":{
      "level":12,
      "monster-id":1002,
      "skill-level":1,
      "aimer-id":302
   },
   "1003":{
      "level":16,
      "monster-id":1003,
      "skill-level":2,
      "aimer-id":303
   }
}

Untuk menyahmarshal JSON ini menjadi pelbagai objek, anda boleh menggunakan yang berikut kod:

type Monster struct {
    MonsterId  int32 `json:"monster-id"`
    Level      int32 `json:"level"`
    SkillLevel int32 `json:"skill-level"`
    AimerId    int32 `json:"aimer-id"`
}

type MonsterCollection struct {
    Pool map[string]Monster
}

func (mc *MonsterCollection) FromJson(jsonStr string) error {
    var data =&mc.Pool
    b := []byte(jsonStr)
    return json.Unmarshal(b, data)
}

Dalam kod ini:

  • Struktur Monster mewakili struktur objek.
  • Struktur MonsterCollection mengandungi kumpulan raksasa, setiap satu dikunci dengan rentetan.
  • Kaedah FromJson menyahmarshal rentetan JSON ke dalam Pool peta.

Pemulangan ralat berguna untuk tujuan penyahpepijatan, membolehkan anda mengesan ralat seperti sintaks JSON yang tidak sah.

Contoh yang berfungsi boleh didapati di Taman Permainan Golang: http: //play.golang.org/p/4EaasS2VLL.

Atas ialah kandungan terperinci Bagaimana untuk Menyahmarshalkan Objek JSON ke dalam Susunan Struktur 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