func main() {
	str := "{\"a\":1}"
	var data1 map[string]int

	_ = json.Unmarshal([]byte(str), &data1)
	fmt.Println(reflect.TypeOf(data1["a"]).Name())

	var data2 map[string]interface{}
	_ = json.Unmarshal([]byte(str), &data2)
	fmt.Println(reflect.TypeOf(data2["a"]).Name())
}

输出:

int
float64

json 的规范中表示在 json 中是没有整型和浮点型之分

​var nilTime = time.Time{}
const timeFormat = "2006-01-02 15:04:05"

type CreatedTime time.Time
func (ct CreatedTime) MarshalJSON() ([]byte, error) {
	var stamp = fmt.Sprintf("\"%s\"", time.Time(ct).Format(timeFormat))
	return []byte(stamp), nil
}
func (ct CreatedTime) Value() (driver.Value, error) {
	if time.Time(ct) == nilTime {
		return time.Now().Format(timeFormat), nil
	}
	return time.Time(ct).Format(timeFormat), nil
}

type UpdatedTime time.Time
func (ut UpdatedTime) MarshalJSON() ([]byte, error) {
	var stamp = fmt.Sprintf("\"%s\"", time.Time(ut).Format(timeFormat))
	return []byte(stamp), nil
}
func (ut UpdatedTime) Value() (driver.Value, error) {
	return time.Now().Format(timeFormat), nil
}
type Admin struct {
	ID        int
	CreatedAt CreatedTime
	UpdatedAt UpdatedTime
}


任何gorm结构体中使用了CreatedTime类型都会在新增数据时自动获取当前时间,任何gorm结构体中使用了UpdatedTime类型都会在保存数据时自动更新当前时间 

问题:electron-builder和react-scripts一起使用时,编译报错builder/electron.js不存在

解决方法:package.json文件中build配置里添加"extends": null