解析动态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 Ports

decoder := 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

回到顶部