JSON配置加载

辅助网址,JSON转结构体对应 http://json2struct.mervine.net/

从JSON文件中加载配置到全局变量中

配置文件  config.json

{
"HTTP服务地址": "IP地址",
"host1": "10.45.151.75", "HTTP服务端口": "监听端口",
"port1": 8080, "数据库配置": "从数据库中读取信息",
"dbConfig": {
"host":"10.45.151.1",
"port" : 3306,
"db" : "pbx",
"user" : "remote",
"passwd" : "tx_1234abc"
}, "rabbitmqConfig": {
"host":"10.45.151.75",
"port" : 5672,
"vhost" : "/",
"user" : "remote",
"passwd" : "tx_1234abc"
} }

配置初始化包 Config.go

package main

import (
"encoding/json"
"fmt"
"io/ioutil"
) type http struct {
Host string `json:"host1"`
Port int `json:"port1"`
} type db struct {
Host string `json:"host"`
Port int `json:"port"`
Db string `json:"db"`
User string `json:"user"`
Passwd string `json:"passwd"`
} type amqp struct {
Host string `json:"host"`
Port int `json:"port"`
Vhost string `json:"vhost"`
User string `json:"user"`
Passwd string `json:"passwd"`
} type baseConfig struct {
http
db `json:"dbConfig"`
amqp `json:"rabbitmqConfig"`
} var (
HttpConfig *http
DBConfig *db
AmqpConfig *amqp
) func InitConfig(filename string) (err error) {
var (
content []byte
conf baseConfig
) if content, err = ioutil.ReadFile(filename); err != nil {
fmt.Println(err)
return
} if err = json.Unmarshal(content, &conf); err != nil {
fmt.Println(err)
return
} HttpConfig = &conf.http
DBConfig = &conf.db
AmqpConfig = &conf.amqp
return
}

  

入口   main.go

package main

import "fmt"

//import "fmt"

func main() {
err := InitConfig("c:/Users/9999/go/src/go_calltask/config.json")
if err != nil{
return
}
// 分别打印http db rabbitmq配置
fmt.Println(HttpConfig.Host)
fmt.Println(DBConfig.Port)
fmt.Println(AmqpConfig.Vhost)
}
//10.45.151.75
//3306
///

  

最新文章

  1. 首页大图淡入淡出效果工具flexslider
  2. 虚拟机VMWARE上ORACLE License 的计算
  3. OO的五大原则是指SRP、OCP、LSP、DIP、ISP。
  4. poj1298 The Hardest Problem Ever 简单题
  5. python中from module import * 的一个陷阱
  6. soapui中文操作手册(五)----入门与安全测试
  7. PHP中使用Session配合Javascript实现文件上传进度条功能
  8. App Store idfa被拒检查办法
  9. dialog参数、方法以及事件
  10. hdu5792--World is Exploding
  11. 一条sql,有分页,表合并查询,多表连接,用于oracle数据库
  12. HDOJ/HDU 2717 Catch That Cow 一维广度优先搜索 so easy..............
  13. Golang开发者常见的坑
  14. MySQL 忘记root密码解决方法,基于Ubuntu 14.10
  15. java中PriorityBlockingQueue 和DelayedWorkQueue 区别
  16. <jsp:param>标签给属性赋值时的一个坑
  17. Log4Net 添加自定义字段并保存到数据库
  18. GIT 分支管理:多人协作
  19. Linux中无权限使用sudo
  20. react native 初识生命周期

热门文章

  1. 常用方法 读取 Excel的单位格 为 日期格式 的数据
  2. vue单项数据流
  3. 60: noi.ac #69
  4. 驱动中遍历模块,以及获取ntoskrnl.exe基址
  5. x64下进程保护HOOK
  6. java自动化配置工具 - autoconfig 简介
  7. 使用mapreduce清洗简单日志文件并导入hive数据库
  8. Xor-matic Number of the Graph-CodeForces - 724G
  9. x86 linux 支持的系统调用参数至多6个
  10. Data truncation: Out of range value for column 'quanity' at row 问题解决方案