func StructFieldFromJSONName(v reflect.Value, name string) string {
	if v.Kind() != reflect.Struct {
		return ""
	}

	m := getType2jfm(v.Type())
	m.lock.Lock()
	defer m.lock.Unlock()

	s, ok := m.fields[name]
	if !ok {
		return ""
	}
	return s
}
func StructFieldFromJSONName(v reflect.Value, name string) string {
	if v.Kind() != reflect.Struct {
		return ""
	}

	m := getType2jfm(v.Type())
	m.lock.Lock()
	defer m.lock.Unlock()

	s, ok := m.fields[name]
	if !ok {
		return ""
	}
	return s
}
// StructFieldFromJSONName returns the struct field name on the
// given struct value. Empty value means the field is either not
// public, or does not exist.
//
// This can be used to map JSON field names to actual struct fields.