gpt4 book ai didi

json - 解码 JSON 响应时遇到问题

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

<分区>

这是我第一次尝试使用 Go,我觉得我在这里遗漏了一些重要的东西。尝试解码来自网络服务的 JSON 消息,但我得到的输出是:

{响应:{请求:[]}}

我真正感兴趣的是请求节点中的数据。我的 for 循环显然没有被调用,因为数组是空的。我觉得我的结构需要完全按照它们在网络服务中出现的方式声明吗?

示例 JSON:

{
"response": {
"requests": [
{
"request": {}
},
{
"request": {
"id": 589748,
"image_thumbnail": "",
"description": "Blah blah",
"status": "received",
"user": "test"
}
}
],
"count": "50",
"benchmark": 0.95516896247864,
"status": {},
"debug": {}
}
}


type Request struct {
id int `json:"id"`
description string `json:"description"`
user string `json:"user"`
}

type Requests struct {
request Request `json:"request"`
}

type Response struct {
requests []Requests `json:"requests"`
}

type RootObject struct {
response Response `json:"response"`
}

url := "<webservice>"

req, err := http.NewRequest("GET", url, nil)
req.Header.Set("Content-Type", "application/json")

client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}

defer resp.Body.Close()

var r RootObject

decoder := json.NewDecoder(resp.Body)
decoder.Decode(&r)


fmt.Printf("%+v", r)

for _, req := range r.response.requests {
fmt.Printf("%d = %s\n", req.request.id, req.request.user)

}

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