golang json编码返回空映射的{}

golang json编码返回空映射的{},json,go,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.Printl

我正试着去把这样的东西还给我:
{“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))
}
输出如下

{map[]}
{"map":null}

我希望它成为
{“map”:{}
建议?我已经尝试手动初始化地图,并使用它的引用。两者似乎都不能产生我想要的结果/

test.MyMap
尚未初始化,因此它是
nil
。初始化它将获得所需的结果:

testval := test{
    MyMap: make(map[string]string),
}

map[string]string{}
也可以使用