我對 Golang 比較陌生。我一直在嘗試解決這個問題一段時間,但沒有找到任何可以幫助我的東西。我只是想將config.toml檔案決議到我的應用程式中。
我的config.toml檔案如下:
[[trees]]
name = "test1"
tags = ["main", "dev"]
[[trees]]
name = "test2"
tags = ["main", "dev", "prod"]
我用來讀取檔案的代碼:
import (
"os"
"fmt"
toml "github.com/pelletier/go-toml/v2"
)
type Configuration struct {
Trees []tree `toml:"trees"`
}
type tree struct {
name string `toml:"name"`
tags []string `toml:"tags"`
}
func main() Configuration {
doc, e := os.ReadFile("config.toml")
if e != nil {
panic(e)
}
var cfg Configuration
err := toml.Unmarshal(doc, &cfg)
if err != nil {
panic(err)
}
fmt.Println(cfg.Trees)
return cfg
}
當我執行代碼時,我得到以下空陣列作為輸出:
> [{ []} { []}]
如果有人能告訴我我在這里做錯了什么,那將不勝感激。
uj5u.com熱心網友回復:
您需要將結構欄位名稱大寫:
type Configuration struct {
Trees []tree `toml:"trees"`
}
type tree struct {
Name string `toml:"name"`
Tags []string `toml:"tags"`
}
這是一個相關的解釋json.Marshal:結構欄位需要是公共的(即大寫名稱)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/520349.html
標籤:去通俗易懂
