gpt4 book ai didi

arrays - 如何在 GOLANG 中解析 JSON 哈希的 JSON 数组

转载 作者:数据小太阳 更新时间:2023-10-29 03:14:07 25 4
gpt4 key购买 nike

我有以下 json 散列的 json 数组:

[
{
"name": "XXXX",
"address": "XXXX",
"keepalive": {
"thresholds": {
"warning": 30,
"critical": 100
},
"handlers": [
"XXXXX"
],
"refresh": 180
},
"subscriptions": [
"XXXX",
"XXXX",
"XXXX"
],
"version": "0.17.1",
"timestamp": 1486413490
},
{...},
{...},
...
]

然后按如下方式解析数组:

type Client struct {
Name string `json:"name"`
Address string `json:"address"`
PublicDNS string `json:"publicDNS"`
keepalive [] string `json:"keepalive"`
Subscriptions [] string `json:"subscriptions"`
Version string `json:"version"`
Timestamp int64 `json:"timestamp"`
}

type ClientResponse []Client


func getClients(body []byte) (*ClientResponse, error) {
var s = new(ClientResponse)
err := json.Unmarshal(body, &s)
if(err != nil){
fmt.Println("whoops:", err)
}
return s, err
}


func main() {
res,err := http.Get("http://xxxxx:4567/clients")
if err != nil{
panic(err.Error())
}

body,err := ioutil.ReadAll(res.Body)
if err != nil{
panic(err.Error())
}
s, err := getClients([]byte(body))
fmt.Println(s)
}

问题:变量s,包含所有数组。那么我怎样才能让我们说出所有数组的名称值呢?我应该做循环并获取我需要的值吗?这是最好的方法吗?

最佳答案

你必须遍历它们。

names := make([]string, len(*s))
for i := range *s {
names[i] = (*s)[i].Name
}

顺便说一句,您的解码结构不正确。 keepalive 没有被导出,所以它不会被解码,即使是,它被定义为一段字符串,而 JSON 中的 keepalive 字段是具有 thresholdshandlersrefresh 字段的对象

关于arrays - 如何在 GOLANG 中解析 JSON 哈希的 JSON 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42077537/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com