如何在Go lang中读取config.json?
我在filLib.go中使用了以下代码:如何在Go lang中读取config.json?,go,Go,我在filLib.go中使用了以下代码: func LoadConfiguration(filename string) (Configuration, error) { bytes, err := ioutil.ReadFile(filename) if err != nil { return Configuration{}, err } var c Configuration err = json.Unmarshal(bytes, &
func LoadConfiguration(filename string) (Configuration, error) {
bytes, err := ioutil.ReadFile(filename)
if err != nil {
return Configuration{}, err
}
var c Configuration
err = json.Unmarshal(bytes, &c)
if err != nil {
return Configuration{}, err
}
return c, nil
}
但是ioutil.ReadFile(文件名)返回*os.PathError
config.json和filLib.go文件都在同一个文件夹中。问题可能与您提供的文件名有关。下面是对我来说工作正常的代码示例
func loadConfig() {
var AppConfig Conf
raw, err := ioutil.ReadFile("conf/conf.json")
if err != nil {
log.Println("Error occured while reading config")
return
}
json.Unmarshal(raw, &AppConfig)
}
*.go
文件的路径与执行编译代码的工作目录没有直接关系。验证代码认为它实际在哪里(与您认为它应该在哪里进行比较:)
我找到了这个图书馆
它是一个非常简单易用的配置库,允许Go应用程序使用基于Json的配置文件。配置提供程序从config.json文件读取配置数据。您可以获取配置的字符串值,或者通过相关节名约定参数将接口绑定到有效的JSON节。
考虑以下配置.jSON文件:
{
“连接字符串”:{
“数据库连接”:“服务器=;用户Id=应用程序;密码=123;数据库=数据库”,
“LogDbConnection”:“服务器=;用户Id=应用程序;密码=123;数据库=日志”
},
“缓存”:{
“应用程序密钥”:“密钥”,
“主机”:“127.0.01”
},
“网站”:{
“ActivityLogEnable”:“true”,
“错误消息”:{
“无效电话号码”:“无效电话号码”,
“RequestNotFound”:“找不到请求”,
“无效确认码”:“无效确认码”
}
},
“服务”:{
“名单”:[
{
“Id”:1,
“名称”:“服务1”
},
{
“Id”:2,
“名称”:“服务2”
},
{
“Id”:3,
“名称”:“服务3”
}
]
}
}
能否显示目录结构和主文件,从中调用LoadConfiguration
函数
import(
"os"
"fmt"
"log"
)
func main() {
dir, err := os.Getwd()
if err != nil {
log.Fatal(err)
}
fmt.Println(dir)
}