登录
首页 >  Golang >  Go问答

遇到挑战:为 JSON coinbase API 历史数据设计结构时碰到困难

来源:stackoverflow

时间:2024-03-20 11:54:30 394浏览 收藏

在使用 JSON-to-Go 库构建历史比特币数据结构时,遇到了一个挑战:如何设计结构以适应不断变化的日期范围。为了解决这个问题,建议使用映射来替代原先的结构化数据,以动态地存储不同日期的价格数据,从而可以灵活地处理任何日期范围的请求。

问题内容

如果我的日期会不断变化,我应该如何构建历史比特币数据的结构?我正在使用 https://mholt.github.io/json-to-go/ 来构建当我达到这个终点时我打算使用的结构 https://api.coindesk.com/v1/bpi/historical/ close.json?start=2013-09-01&end=2013-09-05 。请注意,开始日期和结束日期可能会有所不同。

type autogenerated struct {
    bpi struct {
        two0130901 float64 `json:"2013-09-01"`
        two0130902 float64 `json:"2013-09-02"`
        two0130903 float64 `json:"2013-09-03"`
        two0130904 float64 `json:"2013-09-04"`
            two0130905 float64 `json:"2013-09-05"`
    } `json:"bpi"`
    disclaimer string `json:"disclaimer"`
    time       struct {
            updated    string    `json:"updated"`
        updatediso time.time `json:"updatediso"`
    } `json:"time"`
}

我想去一个有日期和价格的地方。例如

{"2013-09-01":128.2597,
 "2013-09-02":127.3648,
 "2013-09-03":127.5915,
 "2013-09-04":120.5738,
 "2013-09-05":120.5333}

我的目的是可以请求任何日期范围,而不仅仅是那五天。


解决方案


使用映射代替 bpi 结构:

type AutoGenerated struct {
    Bpi map[string]float64 `json:"bpi"`
    Disclaimer string `json:"disclaimer"`
    Time       struct {
            Updated    string    `json:"updated"`
        UpdatedISO time.Time `json:"updatedISO"`
    } `json:"time"`
}

这应该会给你你想要的。

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于Golang的相关知识,也可关注golang学习网公众号。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>