Golang-Pit-02-解析json

json文件

{
    "filepath":"/home/lee/applications/go/src/github.com/wd-project/src/github.com/conf/conf/fluentd.conf",
    "serverurl":"http://loki.hy01.internal.wandoujia.com/server/api/servers?type=recursive&node_id=4185",
    "filetemplate":"/home/lee/applications/go/src/github.com/wd-project/src/github.com/conf/conf/template.conf",
    "redisconnectmethod":"tcp",
    "redisaddressport":"127.0.0.1:6379"
}

解析json文件

package conf

import (
	"encoding/json"
	"fmt"
	"io/ioutil"
	"os"
)

type GolablConf struct {
	FilePath           string `json:filepath`
	ServerUrl          string `json:serverurl`
	FileTemplate       string `json:filetemplate`
	RedisConnectMethod string `json:redisconnectmethod`
	RedisAddressPort   string `json:redisaddressport`
}

var (
	config *GolablConf
)

func Config() *GolablConf {
	return config
}

func ParseConfig(filename string) {
	f, err := os.Open(filename)
	if err != nil {
		fmt.Println("os.Open err=", err)
	}

	data, err := ioutil.ReadAll(f)
	if err != nil {
		fmt.Println("ioutil.ReadAll err=", err)
	}

	var cfg GolablConf
	err = json.Unmarshal(data, &cfg)
	if err != nil {
		fmt.Println("json.Unmarshal err=", err)
	}
	config = &cfg
}

需要使用json字段,利用conf包,如:conf.Config().FilePath就可以使用了

但是json字段中有下划线就不能得到对应的字段

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部