我对BurntSushi/toml有点陌生,我想知道下面的解决方案是什么。
假设我们有这个example.toml文件
[foo]
fighter = "this-is-a-call"
gu = "fish-with-wrong-spelling"
[bar]
beer = "guinness"
snacks = "pickled-eggs"
[more_examples_below]
...
正如我正确理解的那样,toml.DecodeFile(path, struct)
用于将整个example.toml读入戈朗代码。
尽管如此,我还是不明白应该如何只对[bar]
部分进行解码/编码?
因此,我应该在golang映射所有config.toml中定义整个结构吗?如果是,那么是否还有另一种方法不这样做,只为一个特定的块定义一个结构?
发布于 2022-06-29 09:59:17
如果您需要编辑现有.toml文件的特定部分,则在此工作中,viper可能是一个有用的替代方案。关于如何实现这一目标的一些草案
fh, err := os.OpenFile(path, os.O_RDWR, 0777)
if err != nil {
return err
}
viper.SetConfigType("toml")
err = viper.ReadConfig(fh)
if err != nil {
return err
}
viper.Set("bar", foo.String())
err = viper.WriteConfigAs(path)
if err != nil {
return err
}
https://stackoverflow.com/questions/72286744
复制相似问题