gpt4 book ai didi

json - 在 Golang 中解析 JSON 数据

转载 作者:行者123 更新时间:2023-12-01 22:39:27 24 4
gpt4 key购买 nike

在 Go 中,我进行 API 调用并接收回一个 []byte 的完整数据。当我使用 string(res) 打印出数组时,我可以看到原始的 JSON 对象。它看起来像这样:
{"success": true, "data": [{"a": 100, "b": 200, "c": 300},{"a": 200, "b": 400, "c": 600}]}
我还创建了一个看起来像这样的结构

type SomethingCool struct {
A int `json:"a"`
B int `json:"b"`
C int `json:"c"`
}

在 API 的响应中,我只关心 data 中包含的信息。目的。我想要做的是循环 data 中的项目, 并创建一个新的 SomethingCool每个对象的。最后,我想返回一个由循环创建的所有结构组成的数组 data .我怎样才能做到这一点?

最佳答案

为了访问 data JSON 的字段,您需要创建一个类似的结构并将 JSON 有效负载解码到其中。

var incomingJSON struct {
Data []SomethingCool `json:"data"`
}

当你将 JSON 解码到这个结构中时,你应该可以访问你的数据作为 SomethingCool 的一部分。 s。

完整程序:

package main

import (
"encoding/json"
"fmt"
)

type SomethingCool struct {
A int `json:"a"`
B int `json:"b"`
C int `json:"c"`
}

func main() {
var response = []byte(`{"success": true, "data": [{"a": 100, "b": 200, "c": 300},{"a": 200, "b": 400, "c": 600}]}`)
var incomingJSON struct {
Data []SomethingCool `json:"data"`
}
if err := json.Unmarshal(response, &incomingJSON); err != nil {
fmt.Println("Error: ", err)
} else {
fmt.Println("Data: ", incomingJSON)
}
}

关于json - 在 Golang 中解析 JSON 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61643654/

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