在Go中,如何解析以下JSON?我知道如何使用struct来解析,但是每个条目的键是不同的,而且它们不是固定的,它们可能或多或少。
{
"consul": [],
"docker": [],
"etcd": ["etcd"],
"kubernetes": ["secure"],
"mantl-api": [],
"marathon": ["marathon"],
"mesos": ["agent", "follower", "leader", "master"],
"mesos-consul": [],
"zookeeper": ["mantl"]
}谢谢你帮忙!
发布于 2016-07-13 02:22:38
如果json值总是一个[]string,则可以用
json.Unmarshal(value, &map[string][]string)但是如果不是,最好的方法是在映射接口{}中解封JSON,并检查您想要的每个字段类型。
发布于 2016-07-13 01:57:33
将JSON解封为映射类型:map[string][]string
var m map[string][]string
if err := json.Unmarshal(data, &m); err != nil {
// handle error
}发布于 2016-07-13 18:01:25
您还可以为更流畅的解组提供Go‘结构..。
type Rec struct {
Consul []string // `json:"consul"`
Docker []string // `json:"docker"`
Etcd []string // `json:"etcd"`
Kubernetes []string // `json:"kubernetes"`
MantlApi []string // `json:"mantl-api"`
Marathon []string // `json:"marathon"`
Mesos []string // `json:"mesos"`
MesosConsul []string // `json:"mesos-consul"`
Zookeeper []string // `json:"zookeeper"`
}https://stackoverflow.com/questions/38340990
复制相似问题