2016-12-20 7 views
0

Warum TOML unterstützt die Definition einer Karte nicht? und was ist der einfachste Weg, um eine map [string] string in TOML zu definieren?Wie definiert man eine Karte in TOML?

Ich möchte wie die

[FOO] 

Usernames_Passwords='{"user1":"pass1","user2":"pass2"}' 

etwas definieren und dann in ihnen

Antwort

0

auf eine Karte [string] string mit Das funktioniert github.com/BurntSushi/toml gehen konvertieren (nicht unterstützt 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) 

Mit github.com/naoina/toml funktioniert dies (mit Inline-Tabellen):

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) 
0

Sie Karten wie diese haben:

name = { first = "Tom", last = "Preston-Werner" } 
point = { x = 1, y = 2 } 

See: https://github.com/toml-lang/toml#user-content-inline-table

In Ihrem Fall sieht es aus wie Sie ein Passwort Tabelle möchten, oder eine Reihe von Karten. Sie können es so machen:

[[user_entry]] 
name = "user1" 
pass = "pass1" 

[[user_entry]] 
name = "user2" 
pass = "pass2" 

Oder prägnanter:

user_entry = [{ name = "user1", pass = "pass1" }, 
       { name = "user2", pass = "pass2" }] 
Verwandte Themen