I'm running into this case where I have to marshal a map[string]interface{} and print it out. What happens is that when I print it out, the yaml lib (gopkg.in/yaml.v2) converts the ints into strings and surrounds them by quotes while the strings are printed as strings without quotes. Example:
prop1: "1"
prop2: test
prop3: test2
I need other systems to read these values but could not find a way on enforcing the numeric types when I do yaml.Marshal().
My code for the above output looks something like this:
// receive output from somewhere else
pad := "%-16s%s"
raw, err := yaml.Marshal(output)
sArr := strings.Split(raw, "
")
for _, s := range sArr {
fmt.Fprintln(c.StdOut, fmt.Sprintf(pad, s, ""))
}
Any suggestions how to overcome this?
Thanks in advance! JC