testtoml.go 821 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. package main
  2. import (
  3. "bytes"
  4. "encoding/json"
  5. "fmt"
  6. "git.wecise.com/wecise/common/lib/bbangert/toml"
  7. "log"
  8. )
  9. func main() {
  10. log.SetFlags(log.LstdFlags | log.Lshortfile)
  11. var str = `
  12. name = "SNMP"
  13. [TestSnmpInput]
  14. [TestSnmpInput.oid.A]
  15. name = "A"
  16. value = ".1.3.6.1.2.1.1.3.0"
  17. [TestSnmpInput.oid.B]
  18. name = "B"
  19. value = ".1.3.6.1.2.1.1.3.1"
  20. `
  21. buf := new(bytes.Buffer)
  22. buf.WriteString(str)
  23. type oid struct {
  24. Name string `toml:"name"`
  25. Value string `toml:"value"`
  26. }
  27. type input struct {
  28. Oid map[string]oid
  29. }
  30. type config struct {
  31. Name string
  32. TestSnmpInput *input `toml:"TestSnmpInput"`
  33. }
  34. demo := new(config)
  35. _, err := toml.DecodeReader(buf, &demo)
  36. if err != nil {
  37. log.Fatal(err)
  38. }
  39. b, err := json.MarshalIndent(demo, "", " ")
  40. if err != nil {
  41. log.Fatal(err)
  42. }
  43. fmt.Println(string(b))
  44. }