【发布时间】:2018-08-26 10:05:31
【问题描述】:
很难承认,但我很难在我的 cli go 应用中管理状态。我基本上想要的是在磁盘上的文件中管理具有属性的对象列表。我希望能够添加对象及其属性、更新对象和/或其属性并在需要时将其删除。
我认为只有一个 yml 或 json 文件并使用某种库对其进行编辑会很容易,但对于像我这样的 Go 初学者来说,这似乎比它应该的要难。
一个例子是下面的 json 结构。
{
"servers":
[
{ "hostname": "gandalf", "ip": "192.168.1.10", "color": "red" },
{ "hostname": "bilbo", "ip": "192.168.1.11", "color": "blue" },
{ "hostname": "frodo", "ip": "192.168.1.12", "color": "yellow" }
]
}
现在我希望能够添加、删除和编辑服务器。不一定非要json,yaml也可以。
你们对如何做到这一点有任何建议(库和示例)吗?我已经尝试过Viper,但添加新对象甚至编辑现有对象似乎是不可能的。
【问题讨论】:
-
为什么不直接打开文件并将内容解组为json?您只需将文件句柄(因为它实现了
io.Reader接口)传递给json.NewDecoder(),然后将指向与文件结构匹配的结构的指针传递给Decode()。
标签: json go yaml configuration-files