登录
首页 >  Golang >  Go问答

访问嵌套结构中的数据

来源:stackoverflow

时间:2024-04-13 21:54:34 345浏览 收藏

Golang不知道大家是否熟悉?今天我将给大家介绍《访问嵌套结构中的数据》,这篇文章主要会讲到等等知识点,如果你在看完本篇文章后,有更好的建议或者发现哪里有问题,希望大家都能积极评论指出,谢谢!希望我们能一起加油进步!

问题内容

我正在解组一些我已经为其编写结构的嵌套 json 数据。我使用了一个工具,该工具将生成基于 json 数据的结构,但我有点困惑如何访问嵌套的 json 数据(并且字段有时可能为空)。

这是一个结构示例:

type somejson struct {
status         string `json:"status"`
message        string `json:"message"`
somemoredata []struct {
    constant bool `json:"constant,omitempty"`
    inputs   []struct {
        name string `json:"name"`
        type string `json:"type"`
    } `json:"inputs,omitempty"`
    name    string `json:"name,omitempty"`
    outputs []struct {
        name string `json:"name"`
        type string `json:"type"`
    } `json:"outputs,omitempty"`

我能够解组 json 数据并访问顶级字段(例如状态和消息),但在访问 somemoredata 字段下的任何数据时遇到问题。我知道这个字段是一个(我假设是未知的)结构映射,但只有使用基本单级 json blob 的经验。

作为参考,这是我必须解组 json 并能够访问顶级字段的代码。

someData := someJson{}
json.Unmarshal(body, &someData)

那么访问某些嵌套字段(例如 inputs.nameoutputs.name)的最佳方法是什么?


正确答案


要迭代您可以使用的特定结构:

for _, md := range somedata.somemoredata {
    println(md.name)
    for _, out := range md.outputs {
        println(out.name, out.type)
    }
}

访问特定字段:

someData.someMoreData[0].Outputs[0].Name

到这里,我们也就讲完了《访问嵌套结构中的数据》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于的知识点!

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