解析动态json对象
我如何解析这个json对象:
{ "ports": {
"0": {
"3306": "3306"
},
"1": {
"3307": "9908"
}
}
}
我可以有N个端口,每个端口的值始终是key:value对。
到目前为止,我已经尝试过了:
type Ports struct { Port map[string]string
}
有了这个我得到键(0,1),但值是空的。
我也尝试过这个:
type Ports struct { Port map[string]struct{
Values map[string]string
}
}
但也不行。
这就是我解码json对象的方式:
var requestBody Portsdecoder := json.NewDecoder(body)
err := decoder.Decode(&requestBody)
回答:
使用此类型:
type Ports struct { Ports map[string]map[string]string
}
游乐场的例子
笔记:
- 字段名称非常匹配。我使用字段名称“ Ports”来匹配JSON文本中使用的名称。
- Go类型在JSON中应具有相同级别的嵌套。一个结构和映射每个计数用于一个嵌套级别。第一次尝试没有足够的嵌套,第二次尝试具有太多的嵌套级别(带有“值”字段的结构)。
以上是 解析动态json对象 的全部内容, 来源链接: utcz.com/qa/414265.html