登录
首页 >  Golang >  Go问答

解组复杂的 json 数据结构

来源:stackoverflow

时间:2024-04-05 10:36:33 443浏览 收藏

学习Golang要努力,但是不要急!今天的这篇文章《解组复杂的 json 数据结构》将会介绍到等等知识点,如果你想深入学习Golang,可以关注我!我会持续更新相关文章的,希望对大家都能有所帮助!

问题内容

我有一个像这样的 json 文件:

{
    "abev3":
        [
            {"date":"2014-01-02","open":17.3,"close":17.39,"low":17.18,"high":17.5,"volume":8035400},
            {"date":"2014-01-03","open":17.41,"close":16.9,"low":16.9,"high":17.44,"volume":24920500},
            {"date":"2014-01-06","open":16.95,"close":16.8,"low":16.55,"high":17.09,"volume":9355100}
        ],
    "petr4":
        [
            {"date":"2014-01-02","open":20.3,"close":21.39,"low":21.18,"high":21.5,"volume":305464},
            {"date":"2014-01-03","open":20.41,"close":21.9,"low":21.9,"high":21.44,"volume":10864},
            {"date":"2014-01-06","open":20.95,"close":21.8,"low":16.21,"high":21.09,"volume":2016}
        ]
}

我试图使用下面的代码来读取这个 json,但它当然不起作用,因为我不知道如何使字符串键(abev3、petr4...)与下面的代码一起工作!我想出了 map[string]map[int]estrutura_da 但由于某种原因它不起作用

type estrutura_da struct {
        Date string
        Low float64
        High float64
        Open float64
        Close float64
        Volume int
    }       

    var da map[string]map[int]estrutura_da;
    
    json.Unmarshal([]byte(json_code),&da);

您对我如何实现这一目标有什么建议吗?


解决方案


您应该使用 map[string][]estrutura_da,而不是使用 map[string]map[int]estrutura_da

这是因为您有一个 JSON 对象(外括号),其中每个键都是一个对象数组。这对应于 Go 映射,其中每个值都是 estruntura_da 的切片。

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

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