1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
| package json
|
| import (
| "bytes"
| "encoding/json"
| "io"
|
| "github.com/pelletier/go-toml"
| )
|
| // FromTOML convert toml to json
| func FromTOML(v []byte) ([]byte, error) {
| tomlReader := bytes.NewReader(v)
| jsonStr, err := jsonFromTomlReader(tomlReader)
| if err != nil {
| return nil, err
| }
| return []byte(jsonStr), nil
| }
|
| func jsonFromTomlReader(r io.Reader) (string, error) {
| tree, err := toml.LoadReader(r)
| if err != nil {
| return "", err
| }
| return mapToJSON(tree)
| }
|
| func mapToJSON(tree *toml.Tree) (string, error) {
| treeMap := tree.ToMap()
| bytes, err := json.MarshalIndent(treeMap, "", " ")
| if err != nil {
| return "", err
| }
| return string(bytes), nil
| }
|
|