golang json编码为空地图返回{}

ryb*_*bit 1 json go

我试图让我真的回到这样的事情: {"map": {}}不是,{"map":null}但编码/ json似乎检测到这是一个空地图,只返回后一个值.

type test struct {
    MyMap map[string]string `json:"map"`
}

func main() {
    testval := test{}
    asjson, err := json.Marshal(testval)
    fmt.Println(testval)
    fmt.Println(string(asjson))
}
Run Code Online (Sandbox Code Playgroud)

输出是这样的

{map[]}
{"map":null}
Run Code Online (Sandbox Code Playgroud)

我希望得到它的{"map":{}}建议?我试图手动初始化地图,并使用它的参考.似乎都没有产生我想要的输出.:/

Tim*_*per 9

test.MyMap尚未初始化,所以它是nil.初始化它将为您提供所需的结果:

testval := test{
    MyMap: make(map[string]string),
}
Run Code Online (Sandbox Code Playgroud)

https://play.golang.org/p/91vZtJeot3

  • `map [string] string {}`也可以使用 (3认同)