【发布时间】:2013-10-09 09:37:05
【问题描述】:
我正在尽最大努力将一些 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{},我无法弄清楚如何访问数据...
我绝对是初学者。感谢您的时间和精力。
【问题讨论】:
-
参见例如stackoverflow.com/questions/19145202/marshal-of-json-rawmessage stackoverflow.com/questions/19088799/… stackoverflow.com/questions/19081479/xml-decoding-in-go stackoverflow.com/questions/18806325/… 当然还有 golang.org/pkg/encoding/json/#pkg-examples 。 XML 和 JSON 解码的工作方式几乎相同,只需使用
json:"xyz"作为结构标记。 -
@Volker,对不起,但我无法弄清楚这一点。我试过这个:
type EIASeries []struct { SeriesId stringjson:"series_id"` 数据接口{}json:"data"} type EIAResponse struct { Series EIASeriesjson:"series"}` 当我记录 var resp EIAResponse 时,我得到了很多数据,但是当我记录 resp.Series 或记录 resp.Series.Data 时,我什么也得不到……谢谢。 -
也许play.golang.org/p/CZFFWMIdoG 是你想要的。