将字符串片段转换为结构良好/键控(?)JSON

将字符串片段转换为结构良好/键控(?)JSON,json,go,slice,Json,Go,Slice,我有一个非常简单的字符串片段,我可以很高兴地将其转换为JSON,但是我需要为将使用它的系统添加键 例如: package main import ( "encoding/json" "fmt" ) func main() { hosts := []string{"hosta","hostb"} bodyData, _ := json.Marshal(hosts) fmt.P

我有一个非常简单的字符串片段,我可以很高兴地将其转换为JSON,但是我需要为将使用它的系统添加键

例如:

package main

import (
    "encoding/json"
    "fmt"
)

func main() {
    hosts := []string{"hosta","hostb"}
    bodyData, _ := json.Marshal(hosts)
    fmt.Printf(string([]byte((bodyData))))
}
这将输出:
[“hosta”、“hostb”]

这是意料之中的

但是我想要:
{“hosts”:[“hosta”,“hostb”]}

我错过了什么

是的,我可以继续创建另一个结构,但我肯定可以在调用封送员时做些什么

您可以使用地图:

bodyData, _ := json.Marshal(map[string]interface{}{"hosts":hosts})

您可以在调用中创建一个结构值:
bodyData,quot:=json.marshall(struct{Hosts[]string
json:“Hosts”
}{Hosts})
。地图是更好的解决方案,反之亦然。不过,你或许可以将此作为灵感。