-1

我有一个 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存在?

4

1 回答 1

1

如果有效视频具有非空名称,则用于data.Video.Name != ""检查有效视频。

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

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

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

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

于 2020-12-20T14:58:35.317 回答