代码拉取完成,页面将自动刷新
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")
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。