gpt4 book ai didi

json - 使用 Go 访问嵌套数组和对象中的数据

转载 作者:IT王子 更新时间:2023-10-29 02:17:56 26 4
gpt4 key购买 nike

我正在尽最大努力将一些 json 数据解码为 Go 中可用的形式,但似乎无法得到它。数据是:

{
"series": [
{
"series_id": "PET.EMD_EPD2D_PTE_NUS_DPG.W",
"name": "U.S. No 2 Diesel Retail Prices, Weekly",
"units": "Dollars per Gallon",
"updated": "2013-09-27T07:21:57-0400",
"data": [
[
"20130923",
"3.949"
],
[
"20130916",
"3.974"
]
]
}
]
}

我正在尝试将 data 下的数组放入一个变量中,这样我就可以遍历它们并执行如下操作:

if data[i][0] == "20130923" {
fuelPrice.Price == data[i][1]
}

我试图将数据解码到一个结构中,但我不知道如何通过 series... 即我不知道如何做嵌套数组。像这样的事情是行不通的:

type Series struct {
SeriesId string
Name string
Data [][]string
}

type RawFuelPrice struct {
Series []Series
Data []interface{}[]
}

此外,如果我解码到一个接口(interface){},我不知道如何访问数据...

我绝对是初学者。感谢您的时间和精力。

最佳答案

您的代码很好 - 除了 RawFuelPrice 结构的 Data 成员。我认为该语法无效,并且 JSON blob 的顶层没有数据属性。

也就是说,这就是您获取数据的方式:

var rfp RawFuelPrice
json.Unmarshal(input, &rfp)
for _,s := range rfp.Series {
fmt.Println("Name",s.Name)
for _,d := range s.Data {
fmt.Println("\tdate:",d[0])
fmt.Println("\tprice:",d[1])
}
fmt.Println()
}

虽然您可能想检查所有数据是否都在那里。

Go Playground 链接:http://play.golang.org/p/C47lZJ_L0o

关于json - 使用 Go 访问嵌套数组和对象中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19146474/

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