【发布时间】:2021-06-12 19:17:43
【问题描述】:
对于这个基本问题,我深表歉意。我是 Golang 的新手,我有如下的 json 解析
{
"config1":{
"Parameters":{
"Pm1":"value",
"Pm2":"value",
"Pm3":"value"
},
"dynamic_key1":{
"Parameters":{
"a":"value",
"b":"value",
"c":"value",
"d":"value"
},
"Epoch":"value"
},
"Epoch":"value"
}
}
我正在尝试编写一个结构来解析这个json,并按以下方式编写结构。
type Parameters struct {
Pm1 string `json:"Pm1"`
Pm2 string `json:"Pm2"`
Pm3 string `json:"Pm3"`
}
type dynamicParametes struct {
a string `json:"a"`
b string `json:"b"`
c string `json:"c"`
d string `json:"d"`
}
type dynamic struct {
Parameters dynamicParametes `json:"Parameters"`
Epoch string `json:"Epoch"`
}
type config1 struct {
Parameters Parameters `json:"Parameters"`
Dynamic_keys map[string]dynamic `json:"-"`
Epoch string `json:"Epoch"`
}
type config struct {
config1 config1 `json:"config1"`
}
我希望地图能够将所有匹配的键与动态结构匹配并在地图中显示它们。但是,我看到它在响应中创建了一个空地图。
【问题讨论】:
-
这是无效的 JSON 开头:多余的逗号,缺少右括号...
-
您还必须导出结构字段:Why struct fields are showing empty?
-
另请注意,如果您使用 json 标记
"-",这意味着将该字段从编组/解组中排除。如果您仍然需要 JSON 中的该值,则必须手动解组处理。 -
@icza 上面的示例为所有动态键使用了一个接口。但就我而言,动态 ket 的值也可以是嵌套的 json。所以也希望为此创建一个结构。
标签: json go encoding-json-go