gpt4 book ai didi

json - 多个Json条目到一个结构

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

我有多个JSON文件,我想在一个API中进行一次调用。

以下是我的结构:

type Demo struct {
ChannelID int `json:"channelId"`
SeriesName string `json:"seriesName"`
}

我有5个JSON文件,我需要放入此结构中,然后传递给API调用。

我怎么做?

这是我的代码:

func GetJson(search string) *models.Demo {
jsonStruct := models.Demo{}
assetIds := DecodeXml(search)
for i := 0; i < len(assetIds); i++ {
epgData, err := http.Get(assets.EpgUrl + fmt.Sprintf("%v", assetIds[i]))
if err != nil {
log.Fatal(err)
}
jsonData, err := ioutil.ReadAll(epgData.Body)
if err != nil {
log.Fatal(err)
}
json.Unmarshal(jsonData, &jsonStruct)
}
return &jsonStruct
}

对于我的API调用,我使用gin-gonic,其代码如下:

type Search struct {
Search string `form:"search"`
}


func main() {
r := gin.Default()
r.GET("/search", func(c *gin.Context) {
var search Search
if c.ShouldBind(&search) == nil {
c.JSON(200, actions.GetJson(search.Search))
}
})

r.Run()
}

有人有主意吗?

最佳答案

您声明一个变量jsonStruct并重复覆盖其值。您应该创建一个Demo值 slice 并填充该 slice 。

此代码示例使用并返回Demo值的一部分。

func GetJson(search string) []models.Demo {
assetIds := DecodeXml(search)
jsonStructs := make([]models.Demo, len(assetIds))
for i := 0; i < len(assetIds); i++ {
epgData, err := http.Get(assets.EpgUrl + fmt.Sprintf("%v", assetIds[i]))
if err != nil {
log.Fatal(err)
}
jsonData, err := ioutil.ReadAll(epgData.Body)
if err != nil {
log.Fatal(err)
}
epgData.Body.Close()
json.Unmarshal(jsonData, &jsonStructs[i])
}
return jsonStructs
}

关于json - 多个Json条目到一个结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59945260/

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