用GO解组JSON失败,有什么提示吗?
请看一下下面的结构,并告诉我为什么我不能解开它用GO解组JSON失败,有什么提示吗?,json,go,Json,Go,请看一下下面的结构,并告诉我为什么我不能解开它 type Server struct { Etcd [] struct { CertCn string `json:"cert_cn"` } `json:"etcd"` } type CertExpiryReport struct { Data struct { Servers map[string]*Server } `json:"data"` Summary struct
type Server struct {
Etcd [] struct {
CertCn string `json:"cert_cn"`
} `json:"etcd"`
}
type CertExpiryReport struct {
Data struct {
Servers map[string]*Server
} `json:"data"`
Summary struct {
Expired int `json:"expired"`
Ok int `json:"ok"`
Total int `json:"total"`
Warning int `json:"warning"`
} `json:"summary"`
}
以下是JSON内容
{
"data": {
"myserver1.mydomain1.org": {
"etcd": [
{
"cert_cn": "CN:something"
}
]
}
"myserver2.mydomain2.org": {
"etcd": [
{
"cert_cn": "CN:something"
}
]
}
},
"summary": {
"expired": 0,
"ok": 31,
"total": 31,
"warning": 0
}
}
这是我的密码
func printStuff() {
bytes, err := ioutil.ReadFile(jsonFile)
if err != nil {
log.Errorf("%s", err.Error())
os.Exit(1)
}
var certExpiryReport CertExpiryReport
err = json.Unmarshal(bytes, &certExpiryReport)
if err != nil {
log.Errorf("%s", err.Error())
os.Exit(1)
}
log.Info(certExpiryReport)
}
输出如下。我没有得到任何错误
{{map[]} {0 31 31 0}}
为什么不能解析JSON?我的结构有问题吗?结构(或JSON)有问题。CertExpiryReport结构在数据字段中具有额外的嵌套级别。试着替换
Data struct {
Servers map[string]*Server
} `json:"data"`
与
另外,您的JSON给了我一个错误(您在第一个服务器描述之后忘记了逗号)。下面是对结构和JSON进行更改的工作测试:
另一种方法是将JSON“数据”字段“服务器”字段放入其中,并在其中存储数据内容。如果需要更多嵌套。结构(或JSON)有问题。CertExpiryReport结构在数据字段中具有额外的嵌套级别。试着替换
Data struct {
Servers map[string]*Server
} `json:"data"`
与
另外,您的JSON给了我一个错误(您在第一个服务器描述之后忘记了逗号)。下面是对结构和JSON进行更改的工作测试:
另一种方法是将JSON“数据”字段“服务器”字段放入其中,并在其中存储数据内容。如果你需要更多的筑巢