在Go中阅读json文件的值

问题描述:

我有一个配置文件。我想从该文件中获得特定的值。这里是我的代码:在Go中阅读json文件的值

package main 

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

type Configuration struct { 
    consumer_key string 
    consumer_secret string 
    access_token string 
    access_token_secret string 
    db_name string 
    db_user string 
    db_password string 
    secret_key string 
    fb_page string 
    fb_page_token string 
    domain string 
} 

func main() { 
    file, _ := os.Open("./config.json") 
    decoder := json.NewDecoder(file) 
    configuration := Configuration{} 
    error_ := decoder.Decode(&configuration) 
    fmt.Println(configuration.domain) 
} 

config.json

{ 
    "consumer_key": "", 
    "consumer_secret": "", 
    "access_token": "", 
    "access_token_secret": "", 
    "db_name": "", 
    "db_user": "", 
    "db_password": "", 
    "secret_key": "", 
    "fb_page": "", 
    "fb_page_token": "", 
    "domain": "localhost:8000" 
} 

但问题是,它总是打印空行,而不是价值localhost:8000我期待。

您需要export Configuration.domain字段,以便json包可以看到它。

域字段重命名为域:

type Configuration struct { 
    Domain string 
} 

您也可以明确指定json的名称,如果它的字段名称不同:

type Configuration struct { 
    Domain string `json:"domain_name"` 
}