首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Go中解析以下JSON结构

如何在Go中解析以下JSON结构
EN

Stack Overflow用户
提问于 2016-07-13 00:48:46
回答 3查看 315关注 0票数 5

在Go中,如何解析以下JSON?我知道如何使用struct来解析,但是每个条目的键是不同的,而且它们不是固定的,它们可能或多或少。

代码语言:javascript
运行
复制
{
  "consul": [],
  "docker": [],
  "etcd": ["etcd"],
  "kubernetes": ["secure"],
  "mantl-api": [],
  "marathon": ["marathon"],
  "mesos": ["agent", "follower", "leader", "master"],
  "mesos-consul": [],
  "zookeeper": ["mantl"]
}

谢谢你帮忙!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-07-13 02:22:38

如果json值总是一个[]string,则可以用

代码语言:javascript
运行
复制
json.Unmarshal(value, &map[string][]string)

但是如果不是,最好的方法是在映射接口{}中解封JSON,并检查您想要的每个字段类型。

票数 7
EN

Stack Overflow用户

发布于 2016-07-13 01:57:33

将JSON解封为映射类型:map[string][]string

代码语言:javascript
运行
复制
var m map[string][]string
if err := json.Unmarshal(data, &m); err != nil {
    // handle error
}

操场实例

票数 2
EN

Stack Overflow用户

发布于 2016-07-13 18:01:25

您还可以为更流畅的解组提供Go‘结构..。

代码语言:javascript
运行
复制
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"`
}

操场上的工作实例

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38340990

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档