为什么json.Marshal似乎产生了一系列的整数?

时间:2014-05-07 12:29:41

标签: json go

我正试图围绕Go语言,我用这个简单的例子击中了我的第一个绊脚石:

package main

import (
    "encoding/json"
    "fmt"
)

type MyStructure struct {
    Integer int    `json:"integer"`
    Label   string `json:"label"`
}

func main() {
    ms := &MyStructure{9001, "over9000"}
    msjson, _ := json.Marshal(ms)
    fmt.Println(msjson)  // expect: {"integer": 9001, "label": "over9000"}
}

我的输出如下:[123 34 105 110 116 101 103 101 114 34 58 57 48 48 49 44 34 108 97 98 101 108 34 58 34 111 118 101 114 57 48 48 48 34 125]

我显然错过了一些明显的东西;有人可以指出我正确的方向吗?

1 个答案:

答案 0 :(得分:8)

它生成一个字节切片(ref:http://golang.org/pkg/encoding/json/#Marshal),使用string(msjson)来获取字符串。

也永远不要忽视错误,它会在你最不期望的时候咬你。

fmt.Println(string(msjson))
// or
fmt.Printf("%s\n", msjson) //shamelessly taken from @dustin's comment