怎么优雅的获取 TOML 的动态 map

2022-06-12 00:52:09 +08:00
 dzdh

比如想实现这样一个配置

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'] .....

场景是一个特别小的内部使用的用户配置文件。在这个配置里面的才能访问这个服务不值顾搞套数据库。

1344 次点击
所在节点    Go 编程语言
7 条回复
clownpiece
2022-06-12 09:48:09 +08:00
```
[[users]]
username = 'asdf'
password = 'zxcv'
```
dzdh
2022-06-12 09:52:42 +08:00
@clownpiece 再多一个呢?
clownpiece
2022-06-12 09:58:26 +08:00
@dzdh #2
[[users]]
username = 'asdf'
password = 'zxcv'

[[users]]
username = 'qqq'
password = 'www'

[[users]]
username = 'eee'
password = 'rrr'

回复里是不能插代码块的吗。。
dzdh
2022-06-12 12:37:42 +08:00
@clownpiece 看起来还是 json 或 yaml 表述清楚点。。。
clownpiece
2022-06-12 12:49:42 +08:00
@dzdh #4
toml 本意是不要像 yaml 那样缩进得让人眼花,但是现在的趋势还是要加,所以说这方面是不如 yaml
jxia
2022-06-13 15:12:35 +08:00
推荐一下配置库

https://github.com/gookit/config

Go 应用配置加载管理,支持多种格式 JSON, YAML, TOML, INI, HCL, ENV, Flags ,多文件加载,支持数据合并,解析环境变量名等待
jxia
2022-06-13 15:15:59 +08:00
@dzdh 没法修改评论 :)
如果只是取数据使用一下, 不用绑 struct ,可以加载后 config.Get() 数据作为 map 来处理

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/859000

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX