【发布时间】:2020-10-07 20:30:50
【问题描述】:
我正在尝试将给定的 API 响应解析为一个结构。 好像是一个数组。
[
{
"host_name" : "hostname",
"perf_data" : "",
"plugin_output" : "All good",
"state" : 0
}
]
我不知道如何为它创建 struct,我想出了:
type ServiceData struct {
HostName string `json:"host_name"`
PerfData string `json:"perf_data"`
PluginOutput string `json:"plugin_output"`
State int `json:"state"`
}
defer resp.Body.Close()
buf := new(bytes.Buffer)
buf.ReadFrom(resp.Body)
jsonStr := buf.String()
var servicedata ServiceData
json.Unmarshal([]byte(jsonStr), &servicedata)
但没有运气。
我是否应该从初始响应中删除方括号? 有人能指出我正确的方向吗?
【问题讨论】:
-
只想注意 JSON 响应是一个包含单个对象的对象数组。您试图将其解析为单个对象并且失败了。根据下面的答案,创建一个变量和
ServiceData数组可以解决问题。
标签: arrays json parsing go slice