Golang Go语言中怎么优雅的获取 TOML 的动态 map
比如想实现这样一个配置
users []user
type user struct {
username string
password string
}
这个 toml 应该是长啥样呢?
就是什么格式和解析或什么格式的 struct 才能实现像 php 那样的:
$arr = [
'users' => [
['username'=>'1', 'password' => '1']
]
];
// foreach ($arr[‘users’] as $item) if $req[‘user’] == $item[‘username’] …
场景是一个特别小的内部使用的用户配置文件。在这个配置里面的才能访问这个服务不值顾搞套数据库。
Golang Go语言中怎么优雅的获取 TOML 的动态 map
更多关于Golang Go语言中怎么优雅的获取 TOML 的动态 map的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
<br>[[users]]<br>username = 'asdf'<br>password = 'zxcv'<br>
更多关于Golang Go语言中怎么优雅的获取 TOML 的动态 map的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
再多一个呢?
看起来还是 json 或 yaml 表述清楚点。。。
#4
toml 本意是不要像 yaml 那样缩进得让人眼花,但是现在的趋势还是要加,所以说这方面是不如 yaml
推荐一下配置库
https://github.com/gookit/config
Go 应用配置加载管理,支持多种格式 JSON, YAML, TOML, INI, HCL, ENV, Flags ,多文件加载,支持数据合并,解析环境变量名等待
没法修改评论 :)
如果只是取数据使用一下, 不用绑 struct ,可以加载后 config.Get() 数据作为 map 来处理
在Golang中优雅地获取TOML配置并将其解析为动态的map
,可以使用go-toml
库。以下是一个简洁的示例,展示了如何完成这一任务:
-
首先,确保你已经安装了
go-toml
库。你可以通过以下命令安装:go get github.com/BurntSushi/toml
-
接下来,编写代码读取TOML文件并将其解析为
map[string]interface{}
:package main import ( "fmt" "log" "github.com/BurntSushi/toml" ) type Config map[string]interface{} func main() { var config Config if _, err := toml.DecodeFile("config.toml", &config); err != nil { log.Fatalf("Error decoding TOML: %v", err) } fmt.Printf("Parsed Config: %+v\n", config) }
在这个示例中,
Config
被定义为一个map[string]interface{}
的别名,这使得我们可以直接解析TOML文件到该类型。toml.DecodeFile
函数用于读取并解析TOML文件。 -
确保你的
config.toml
文件格式正确,例如:title = "TOML Example" owner = { name = "Tom Preston-Werner", dob = "1979-05-27T07:32:00Z" }
通过这种方式,你可以优雅地读取和解析TOML配置,并将其存储在一个动态的map
中,便于后续处理和使用。