我使用golang从redis散列获取数据,然后映射到结构中。
type Person struct {
ID string `json:"id"`
FirstName string `json:"firstName"`
LastName string `json:"lastName"`
Filters interface{} `json:"filters"`
Type string `json:"type"`
}
在Redis中,哈希字段包含一个字符串化的JSON。
hget hashname字段名
上面返回一个字符串化的JSON。
现在“filters”键可以是基于类型的数组或映射(这就是为什么我将filters类型定义为struct中的接口)。
我将JSON整理如下:
var p Person
content, err := redis.HGet("hashName", "id").Result()
_ = json.Unmarshal([]byte(content), &p)
现在我必须循环使用下面这样的过滤器,但这会产生错误
不能超过p.筛选器(类型interface)
(我知道为什么会出现这种错误)
for _, filter := range p.Filters {
fmt.Println(filter)
}
我们有办法处理这种情况吗?
谢谢,
沙参