登录
首页 >  Golang >  Go问答

Beego httplib.get 过滤 JSON

来源:stackoverflow

时间:2024-03-17 13:57:23 130浏览 收藏

在使用 Beego 的 httplib.get 方法获取 JSON 数据时,如果 API 响应中包含不同类型的字段(如字符串或数字),可能会出现转换错误。为了解决这个问题,可以将字段类型设置为 interface{},这样 Go 可以在迭代和转换时根据实际类型进行处理。具体来说,可以使用类型转换 switch 语句,根据字段类型进行不同的操作,从而实现数据的灵活处理和转换。

问题内容

我是 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 字段中可能是字符串或数字(取决于类型字段),这就是为什么我收到错误 json: 无法将数字解组为 string 类型的 go 值。我想,我必须在 tojson 方法之前过滤响应。或者我必须创建仅包含字段类型的结构,从 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.
    }
}

到这里,我们也就讲完了《Beego httplib.get 过滤 JSON》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于的知识点!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>