我是Golang的新手,遇到了问题。我使用包github.com/astaxie/beego/httplib
,尝试从API获取信息
res := httplib.Get("example.com")
type SomeStruct struct {
Type string
Id string
// ...
}
var itemStruct SomeStruct
err := res.ToJSON(&itemStruct)
问题:在API响应中,Id字段可能是字符串或数字(取决于Type字段),这就是为什么我得到错误json: cannot unmarshal number into Go value of type string
。我想,我必须在ToJSON方法之前过滤响应。或者我必须创建只包含字段Type的结构,从API获取数据,按类型过滤。但在这种情况下,我怎样才能获得其他领域?谢谢
是否可以制作Type
类型的interface{}
?
在go中的转换非常干净,因此您可以在使用该类型时进行迭代和转换
for _, s := ss {
switch v := s.Type.(type) {
case string:
// Do something
cast int:
// Do something else
default:
// Handle unexpected type gracefully.
}
}