This is a creation in Article, where the information may have evolved or changed.
//unkonwnjsonunmarshal JSONfuncUnkonwnjsonunmarshal (data []byte, keystring) (vvInterface{}) {varFInterface{}ifERR: = json. Unmarshal (data, &f); Err = =Nil{m: = f. (Map[string]Interface{}) forK, V: =Rangem {ifKey = = k {SwitchVV: = V. (type) { Case string: FMT. Println (k,"is string", VV)returnvv Case int: FMT. Println (k,"is int", VV) Case[]Interface{}: FMT. Println (k,"is Arry", VV)returnvv Case float64: FMT. Println (k,"is Float64", VV)returnvvdefault: FMT. Println (k,"is of a type I don ' t know what to handle") } }Else{Continue} } }return}
//Missionperformance methodfunc(Uptokentask missiontaskstr) Missionperformance () (RejsonBOOL) {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")SwitchValue: = expire. (type) { Case float64: Deadline: =Int64(value) Now: = time. Now (). Unix ()ifNow < deadline {FMT. Println ("==", now) Rejson =true} FMT. Println ("!=", deadline, now)} FMT. Println ("Policy", expire)ifErr! =Nil{FMT. Println (Uptokentask.name,"Error---", err)}return}