123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- package gmdata
- import (
- "encoding/json"
- "fmt"
- "testing"
- )
- func TestShopJson(t *testing.T) {
- type Item struct {
- ID int `json:"ID"`
- Materials []struct {
- ID int `json:"id"`
- Count int `json:"count"`
- } `json:"Materials"`
- Equipments []int `json:"Equipments"`
- Gift interface{} `json:"Gift"`
- Cost []struct {
- ID int `json:"id"`
- Count int `json:"count"`
- } `json:"Cost"`
- OtherGoods interface{} `json:"OtherGoods"`
- AdCoolDown int `json:"AdCoolDown"`
- AdDayTimes int `json:"AdDayTimes"`
- TotalTimes int `json:"TotalTimes"`
- FirstDouble int `json:"FirstDouble"`
- GoodsType int `json:"GoodsType"`
- StartTime int `json:"StartTime"`
- EndTime int `json:"EndTime"`
- OpenLevel int `json:"OpenLevel"`
- MaxLevel int `json:"MaxLevel"`
- }
- jsonData := `{
- "1": {
- "ID": 1,
- "Materials": null,
- "Equipments": null,
- "Gift": null,
- "Cost": [{
- "id": 1012,
- "count": 1
- }],
- "OtherGoods": null,
- "AdCoolDown": 0,
- "AdDayTimes": 0,
- "TotalTimes": 0,
- "FirstDouble": 0,
- "GoodsType": 1,
- "StartTime": 0,
- "EndTime": 0,
- "OpenLevel": 0,
- "MaxLevel": 1000000
- },
- "10": {
- "ID": 10,
- "Materials": [{
- "id": 1001,
- "count": 20000
- },
- {
- "id": 1002,
- "count": 600
- },
- {
- "id": 6005,
- "count": 20
- }
- ],
- "Equipments": [50104001],
- "Gift": null,
- "Cost": [{
- "id": 0,
- "count": 6
- }],
- "OtherGoods": null,
- "AdCoolDown": 300,
- "AdDayTimes": 0,
- "TotalTimes": 0,
- "FirstDouble": 0,
- "GoodsType": 6,
- "StartTime": 0,
- "EndTime": 0,
- "OpenLevel": 0,
- "MaxLevel": 1000000
- }
- }`
- var data map[string]Item
- err := json.Unmarshal([]byte(jsonData), &data)
- if err != nil {
- fmt.Println("Unmarshal error:", err)
- return
- }
- // 遍历解析后的数据
- for key, value := range data {
- fmt.Printf("Key: %s\n", key)
- fmt.Printf("ID: %d\n", value.ID)
- fmt.Printf("Materials: %v\n", value.Materials)
- fmt.Printf("Equipments: %v\n", value.Equipments)
- fmt.Printf("Cost: %v\n", value.Cost)
- // ... 解析其他字段
- fmt.Println("--------------------")
- }
- }
|