Conversion between struct and map
1 //struct2map convert struct to map2Func Struct2map (StInterface{}) map[string]Interface{} {3VT: =reflect. TypeOf (ST)4VV: =reflect. ValueOf (ST)5 vardata = Make (map[string]Interface{})6 forI: =0; I < Vt. Numfield (); i++ {7F: =Vt. Field (i)8V: =VV. Field (i)9Chkey: = F.tag.get ("JSON")Ten SwitchV.kind () { One Casereflect. String: A ifS, OK: = V.interface (). (string); OK && s! ="" { -Data[chkey] =s - } the Casereflect. Int: - ifI, OK: = V.interface (). (int); OK && I! =0 { -Data[chkey] =I - } + Casereflect. Struct: - ifT, OK: = V.interface (). (Time. Time); OK && t! =(time. time{}) { +Data[chkey] =T A } at Casereflect. Uint64: - ifU64, OK: = V.interface (). (UInt64); OK && u64! =0 { -Data[chkey] =U64 - } - Casereflect. Uint: - ifU, OK: = V.interface (). (UINT); OK && u! =0 { inData[chkey] =u - } to default: +Log. Error ("unsupport Common query type:"+string(Chkey)) - } the } * returnData $}
The conversion between JSON and map
// jsonstring2map convert struct to map string) (map[string]string, error) { result:= Make (map[string]string err:= json. Unmarshal ([]byte(str), &result) return result, err}
Conversion between map and JSON
// Map2json conver Map to JSONfunc Map2json (jsonmap map[string)string(string, Error) { jbytes, err:= json. Marshal (jsonmap) returnstring(jbytes), err}
Go language Advanced Features summary--struct, MAP, and JSON conversions