package main import ( "fmt" "encoding/json" ) type ItemMessage struct { ItemType int `json:"itemType"` ItemId int `json:"itemId"` ItemCount int `json:"itemCount"` GoodsStatue *GoodsStatue } type GoodsStatue struct{ GoodsId int GoodsPrice int } func main() { JsonString := make(map[int]string) item := make(map[int]*GoodsStatue) JsonString[0] = `{"itemType": 1, "itemId": 2, "itemCount": 3, "GoodsStatue":{"GoodsId": 123, "GoodsPrice": 22}}` JsonString[1] = `{"itemType": 4, "itemId": 5, "itemCount": 6, "GoodsStatue":{"GoodsId": 456, "GoodsPrice": 33}}` for k, v := range JsonString{ var res ItemMessage json.Unmarshal([]byte(v), &res) item[k] = res.GoodsStatue } for k, v := range item{ fmt.Printf("k= %+v, v=%+v\n", k, *v) } }
package main import ( "fmt" "encoding/json" ) type ItemMessage struct { ItemType int `json:"itemType"` ItemId int `json:"itemId"` ItemCount int `json:"itemCount"` GoodsStatue *GoodsStatue } type GoodsStatue struct{ GoodsId int GoodsPrice int } func main() { var item ItemMessage xsk := `{"itemType": 1, "itemId": 2, "itemCount": 3, "GoodsStatue":{"GoodsId": 123, "GoodsPrice": 22}}` json.Unmarshal([]byte(xsk), &item) fmt.Printf("item= %+v item.GoodsStatue=%+v\n", item, *item.GoodsStatue) }
package main import ( "fmt" "encoding/json" ) type ItemMessage struct { ItemType int `json:"itemType"` ItemId int `json:"itemId"` ItemCount int `json:"itemCount"` GoodsStatue *GoodsStatue } type GoodsStatue struct{ GoodsId int GoodsPrice int } func main() { item := make(map[int][]ItemMessage, 10) JsonString := make(map[int]string) JsonString[0] = `{"itemType": 1, "itemId": 2, "itemCount": 3, "GoodsStatue":{"GoodsId": 123, "GoodsPrice": 22}}` JsonString[1] = `{"itemType": 4, "itemId": 5, "itemCount": 6, "GoodsStatue":{"GoodsId": 456, "GoodsPrice": 33}}` for k, v := range JsonString{ var res ItemMessage json.Unmarshal([]byte(v), &res) item[k] = append(item[k], res) } for k,v := range item{ fmt.Printf("item=%+v item.GoodsStatue=%+v\n", item[k], *v[0].GoodsStatue) } }