如何在Go lang中读取config.json?

如何在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, &

我在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, &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)
}