检查结构中的结构是否存在
Check if struct within struct exists
我有一个 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 文档中是否存在视频对象。
我有一个 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 文档中是否存在视频对象。