go语言反射reflect
2016-07-28 10:06
573 查看
//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 }
相关文章推荐
- Mongo 分页查询
- Golang通关初级(4)
- Django博客功能实现—文章评论的显示
- 第4课 Go数组Array和切片Slice
- 口袋妖怪Go之父讲述幕后故事:当年差点被谷歌放弃
- django把页面数据导出excel文件
- go语言学习-文件读写 io os ioutil
- go slice 第三个参数是容量
- UVa 11090 Going in Cycle!!(环上平均值最大+SPFA DFS判负环)
- go 语言学习历程
- Django vs2015 学习开发日记1
- Go基础篇之一
- poj_2195Going Home(最小费用最大流)
- Rust 1.0发布一周年,发展回顾与总结
- 第3课 Go控制,循环,选择,跳转语句
- 模仿绘画风格的算法:A Neural Algorithm of Artistic Style
- django简单入门
- poj 3622 Gourmet Grazers 挑剔的美食家(贪心)
- POJ2007 Scrambled Polygon
- Django1.8教程——安装Django