File tree Expand file tree Collapse file tree 1 file changed +21
-5
lines changed Expand file tree Collapse file tree 1 file changed +21
-5
lines changed Original file line number Diff line number Diff line change 1
1
package json
2
2
3
3
import (
4
+ "bytes"
4
5
"encoding/json"
6
+ "io"
5
7
6
8
"github.com/pelletier/go-toml"
7
9
)
8
10
9
11
// FromTOML convert toml to json
10
12
func FromTOML (v []byte ) ([]byte , error ) {
11
- m := make (map [string ]interface {})
12
- if err := toml .Unmarshal (v , & m ); err != nil {
13
+ tomlReader := bytes .NewReader (v )
14
+ jsonStr , err := jsonFromTomlReader (tomlReader )
15
+ if err != nil {
13
16
return nil , err
14
17
}
15
- j , err := json .Marshal (m )
18
+ return []byte (jsonStr ), nil
19
+ }
20
+
21
+ func jsonFromTomlReader (r io.Reader ) (string , error ) {
22
+ tree , err := toml .LoadReader (r )
16
23
if err != nil {
17
- return nil , err
24
+ return "" , err
25
+ }
26
+ return mapToJSON (tree )
27
+ }
28
+
29
+ func mapToJSON (tree * toml.Tree ) (string , error ) {
30
+ treeMap := tree .ToMap ()
31
+ bytes , err := json .MarshalIndent (treeMap , "" , " " )
32
+ if err != nil {
33
+ return "" , err
18
34
}
19
- return j , nil
35
+ return string ( bytes [:]) , nil
20
36
}
You can’t perform that action at this time.
0 commit comments