微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

检查结构中的结构是否存在

如何解决检查结构中的结构是否存在

我有一个 json 提要,正在尝试检查结构中的结构是否存在。

type Feed struct {
    Video          struct {
        Name string      `json:"name"`
    }   
}

这是解组过程:

data:= &Feed{}

err := json.Unmarshal([]byte(structuredData),data)
    if err != nil {
        return err
    }

在某些情况下,Video 存在,而在其他情况下,则不存在。我想在 if 语句中验证这一点,例如 if data.Video != nil 但这似乎无法编译(我得到 invalid Operation)。如何检查 Video 是否存在?

解决方法

如果有效视频的名称不为空,则使用 data.Video.Name != "" 检查有效视频。

如果要检测视频对象是否包含在 JSON 中,则使用指向结构的指针声明类型:

type feed struct {
    Video          *struct {  // <-- note * on this line
        Name string      `json:"name"`
    }   
}

仅当 JSON 文档具有视频对象时,JSON 解码器才会分配内部结构。

使用 data.Video != nil 检查 JSON 文档中是否存在视频对象。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。