go语言反射reflect

guoer9973 · · 1017 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

//UnKonwnJSONUnmarshal json
func UnKonwnJSONUnmarshal(data []byte, key string) (vv interface{}) {
    var f interface{}
    if err := json.Unmarshal(data, &f); err == nil {
        m := f.(map[string]interface{})
        for k, v := range m {
            if key == k {
                switch vv := v.(type) {
                case string:
                    fmt.Println(k, "is string", vv)
                    return vv
                case int:
                    fmt.Println(k, "is int", vv)
                case []interface{}:
                    fmt.Println(k, "is arry", vv)
                    return vv
                case float64:
                    fmt.Println(k, "is float64", vv)
                    return vv
                default:
                    fmt.Println(k, "is of a type I don't know how to handle")
                }
            } else {
                continue
            }
        }
    }
    return
}
// MissionPerformance method
func (uptokenTask MissionTaskStr) MissionPerformance() (rejson bool) {
    uptokenTask.Name = "missionPerformance"
    uptoken := createToken()
    s := strings.Split(uptoken, ":")
    fmt.Println("policy-base64---", s[2])
    policy, err := base64.StdEncoding.DecodeString(s[2])
    expire := UnKonwnJSONUnmarshal(policy, "deadline")
    switch value := expire.(type) {
    case float64:
        deadline := int64(value)
        now := time.Now().Unix()
        if now < deadline {
            fmt.Println("==", now)
            rejson = true
        }
        fmt.Println("!=", deadline, now)

    }
    fmt.Println("policy", expire)
    if err != nil {
        fmt.Println(uptokenTask.Name, "error---", err)
    }
    return

}

有疑问加站长微信联系(非本文作者)

本文来自:CSDN博客

感谢作者:guoer9973

查看原文:go语言反射reflect

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1017 次点击  
加入收藏 微博
0 回复
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传