golang读取json配置文件

// Config
type Config struct {
   AttackConfig AttackConfig
   DefensiveConfig DefensiveConfig
}

// 进攻
type AttackConfig struct {
   ExtraBlood ExtraBlood
   ExtraArmor ExtraArmor
   ExtraAvoid ExtraAvoid
}
// 进攻 血限
type ExtraBlood struct {
   One One
   Two Two
   Three Three
}

// 进攻 护甲
type ExtraArmor struct {
   One One
   Two Two
   Three Three
}

// 进攻 躲避
type ExtraAvoid struct {
   One One
}

// 防守
type DefensiveConfig struct {
   ExtraAttack ExtraAttack
   ExtraFrequency ExtraFrequency
   ExtraHit ExtraHit
}

// 防守 攻击力
type ExtraAttack struct {
   One One
   Two Two
   Three Three
}

// 防守 攻击频率
type ExtraFrequency struct {
   One One
   Two Two
   Three Three
}

// 防守 命中率
type ExtraHit struct {
   One One
}

// 装备等级
type One struct {
   ID int64
   Attr int64
   SpendMoney int64
}
type Two struct {
   ID int64
   Attr int64
   SpendMoney int64
}
type Three struct {
   ID int64
   Attr int64
   SpendMoney int64
}



func GameConfigs (){
   JsonParse := NewJsonStruct()
   v := Config{}
   JsonParse.Load("./conf/game_config.json", &v)
   fmt.Println(v)
}

type JsonStruct struct {
}

func NewJsonStruct() *JsonStruct {
   return &JsonStruct{}
}

func (jst *JsonStruct) Load(filename string, v interface{}) {
   data, err := ioutil.ReadFile(filename)
   if err != nil {
      return
   }
   err = json.Unmarshal(data, v)
   if err != nil {
      return
   }
}

 

game_config.json
{
  "AttackConfig":{
    "ExtraBlood":{
      "One":{
        "Id":1,
        "Attr":20,
        "SpendMoney":100
      },
      "Two":{
        "Id":2,
        "Attr":40,
        "SpendMoney":200
      },
      "Three":{
        "Id":3,
        "Attr":60,
        "SpendMoney":500
      }
    },
    "ExtraArmor":{
      "One":{
        "Id":1,
        "Attr":20,
        "SpendMoney":100
      },
      "Two":{
        "Id":2,
        "Attr":40,
        "SpendMoney":200
      },
      "Three":{
        "Id":3,
        "Attr":60,
        "SpendMoney":500
      }
    },
    "ExtraAvoid":{
      "One":{
        "Id":1,
        "Attr":10,
        "SpendMoney":100
      }
    }
  },
  "DefensiveConfig":{
    "ExtraAttack":{
      "One":{
        "Id":1,
        "Attr":20,
        "SpendMoney":100
      },
      "Two":{
        "Id":2,
        "Attr":40,
        "SpendMoney":200
      },
      "Three":{
        "Id":3,
        "Attr":60,
        "SpendMoney":500
      }
    },
    "ExtraFrequency":{
      "One":{
        "Id":1,
        "Attr":20,
        "SpendMoney":100
      },
      "Two":{
        "Id":2,
        "Attr":40,
        "SpendMoney":200
      },
      "Three":{
        "Id":3,
        "Attr":60,
        "SpendMoney":500
      }
    },
    "ExtraHit":{
      "One":{
        "Id":1,
        "Attr":10,
        "SpendMoney":100
      }
    }
  }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值