1 Star 1 Fork 1

xiaoyutab / xgotool

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
query.go 1.15 KB
一键复制 编辑 原始数据 按行查看 历史
xiaoyutab 提交于 2024-01-29 18:06 . 在Header错误时不再往下走
package https
import (
"encoding/json"
"time"
"github.com/bitly/go-simplejson"
)
// 获取JSON中的数据
//
// obj 要获取的obj对象,需要提供给json.Unmarshal
// first... simplejson.GetPath传入的string列表
func (curl *CURL) Json(obj any, first ...string) error {
if curl.Error != nil {
return curl.Error
}
if curl.HttpCode == 0 && len(curl.Body) == 0 {
// 该请求还未进行最终的GET/POST请求,所以此处直接默认为GET请求
curl.Get()
}
if curl.Error != nil {
return curl.Error
}
// 如果传入nil则表示舍弃该值
if obj == nil {
return nil
}
if len(first) == 0 {
curl.OverTime = time.Now()
return json.Unmarshal([]byte(curl.Body), obj)
}
js, err := simplejson.NewJson([]byte(curl.Body))
if err != nil {
return err
}
var j []byte
j, err = js.GetPath(first...).Encode() // 转换成json字符串
if err != nil {
return err
}
err = json.Unmarshal(j, obj)
curl.OverTime = time.Now()
if err != nil {
return err
}
return nil
}
// 获取JSON中的Data对象
//
// obj 要转化的对象,需要在json中的data里面
func (curl *CURL) JsonData(obj any) error {
return curl.Json(obj, "data")
}
Go
1
https://gitee.com/xiaoyutab/xgotool.git
git@gitee.com:xiaoyutab/xgotool.git
xiaoyutab
xgotool
xgotool
v0.3.9

搜索帮助

53164aa7 5694891 3bd8fe86 5694891