How to define a map in TOML?
For example, I want to define something like:
[FOO]
Usernames_Passwords='{"user1":"pass1","user2":"pass2"}'
and then in go convert them to a map[string]string
This works using github.com/BurntSushi/toml (does not support inline tables):
d := `
[FOO.Usernames_Passwords]
a="foo"
b="bar"
`
var s struct {
FOO struct {
Usernames_Passwords map[string]string
}
}
_, err := toml.Decode(d, &s)
// check err!
fmt.Printf("%+v", s)
Using github.com/naoina/toml this works (using inline tables):
d := `
[FOO]
Usernames_Passwords = { a = "foo" , b = "bar" }
`
var s struct {
FOO struct {
Usernames_Passwords map[string]string
}
}
err := toml.Unmarshal([]byte(d), &s)
if err != nil {
panic(err)
}
fmt.Printf("%+v", s)
You can have maps like this:
See: https://github.com/toml-lang/toml#user-content-inline-table
In your case, it looks like you want a password table, or an array of maps. You can make it like this:
Or more concisely: