data,_:=json.Marshal(结构体)
jsonStr:=`{"name":"Alice","addr":"Green Street"}`
err:=json.Unmarshal([]byte(jsonStr),结构体对象)
jsonStr := `{"name":"cheney","age":26}`
var mapResult map[string]interface{}
if err := json.Unmarshal([]byte(jsonStr), &mapResult); err != nil {
mapInstance := make(map[string]interface{})
mapInstance["Name"] = "liang637210"
if err := mapstructure.Decode(mapInstance, &person); err != nil {
fmt.Printf("map2struct后获得的 struct 内容为:%v", person)
func StructToMap(in interface{}, tagName string) (map[string]interface{}, error) {
out := make(map[string]interface{})
if v.Kind() == reflect.Ptr {
if v.Kind() != reflect.Struct {
return nil, fmt.Errorf("ToMap only accepts struct or struct pointer; got %T", v)
for i := 0; i < v.NumField(); i++ {
if tagValue := fi.Tag.Get(tagName); tagValue != "" {
out[tagValue] = v.Field(i).Interface()
fmt.Printf("时间戳(秒):%v;\n", time.Now().Unix())
fmt.Printf("时间戳(纳秒):%v;\n",time.Now().UnixNano())
fmt.Printf("时间戳(毫秒):%v;\n",time.Now().UnixNano() / 1e6)
fmt.Printf("时间戳(纳秒转换为秒):%v;\n",time.Now().UnixNano() / 1e9)
string := strconv.Itoa(int)
int, err := strconv.Atoi(string)
int64, err := strconv.ParseInt(string, 10, 64)
string := strconv.FormatInt(int64,10)
func EncodeMD5(value string) string {
return hex.EncodeToString(m.Sum(nil))
func GenValidateCode(width int) string {
numeric := [10]byte{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
rand.Seed(time.Now().UnixNano())
for i := 0; i < width; i++ {
fmt.Fprintf(&sb, "%d", numeric[rand.Intn(r)])
func GetRandStr(n int) (randStr string) {
chars := "ABCDEFGHIJKMNPQRSTUVWXYZabcdefghijkmnpqrstuvwxyz23456789"
rand.Seed(time.Now().UnixNano())
randIndex := rand.Intn(charsLen)
randStr += chars[randIndex : randIndex+1]
func IsContain(items []string, item string) bool {
for _, eachItem := range items {
func FormatMobileStar(mobile string) string {
return mobile[:3] + "****" + mobile[7:]
f, _ := strconv.ParseFloat("183412.4523", 64)
str = strconv.FormatFloat(1.468194141, 'f', -1, 32)
