Consider the following JSON data:
{ "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 } }
The goal is to unmarshal this JSON into an array of Monster objects.
type Monster struct { MonsterId int32 Level int32 SkillLevel int32 AimerId int32 }
To achieve this, follow these steps:
type MonsterCollection struct { Pool map[string]Monster }
func (mc *MonsterCollection) FromJson(jsonStr string) error { var data *map[string]Monster b := []byte(jsonStr) return json.Unmarshal(b, &data) }
type Monster struct { MonsterId int32 `json:"monster-id"` Level int32 `json:"level"` SkillLevel int32 `json:"skill-level"` AimerId int32 `json:"aimer-id"` }
mc := new(MonsterCollection) err := mc.FromJson(jsonStr)
for id, monster := range mc.Pool { fmt.Println(id, monster) }
By following these steps, you can successfully unmarshal the nested JSON data into an array of Monster objects in Go.
The above is the detailed content of How to Unmarshal Nested JSON into an Array of Objects in Go?. For more information, please follow other related articles on the PHP Chinese website!