1
This commit is contained in:
parent
2351ba1052
commit
dd033a2521
39
dataset.go
39
dataset.go
@ -167,7 +167,7 @@ func UnmarshalModelList[T any](ds *DataSet, models *[]*T) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
目前不支持指针!!!
|
只支持1级指针
|
||||||
*/
|
*/
|
||||||
func UnmarshalModel[T any](ds *DataSet, m *T) error {
|
func UnmarshalModel[T any](ds *DataSet, m *T) error {
|
||||||
mType := reflect.TypeOf(m).Elem()
|
mType := reflect.TypeOf(m).Elem()
|
||||||
@ -202,39 +202,22 @@ func UnmarshalModel[T any](ds *DataSet, m *T) error {
|
|||||||
if gormIsJson {
|
if gormIsJson {
|
||||||
q5.DecodeJson(fieldVal, mVal.Field(i).Addr().Interface())
|
q5.DecodeJson(fieldVal, mVal.Field(i).Addr().Interface())
|
||||||
} else {
|
} else {
|
||||||
switch field.Type.Kind() {
|
if (q5.IsSimpleReflectKind(field.Type.Kind())) {
|
||||||
case reflect.Bool:
|
mVal.Field(i).Set(*q5.StrToSimpleReflectValue(fieldVal, field.Type.Kind()))
|
||||||
{
|
|
||||||
if fieldVal == "" || fieldVal == "0" {
|
|
||||||
mVal.Field(i).SetBool(false)
|
|
||||||
} else {
|
} else {
|
||||||
mVal.Field(i).SetBool(true)
|
switch field.Type.Kind() {
|
||||||
}
|
case reflect.Ptr:
|
||||||
}
|
|
||||||
case reflect.Int,
|
|
||||||
reflect.Int8,
|
|
||||||
reflect.Int16,
|
|
||||||
reflect.Int32,
|
|
||||||
reflect.Int64:
|
|
||||||
{
|
{
|
||||||
mVal.Field(i).SetInt(q5.ToInt64(fieldVal))
|
if (q5.IsSimpleReflectKind(field.Type.Elem().Kind())) {
|
||||||
|
mVal.Field(i).Set(*q5.StrToSimplePtrReflectValue(fieldVal, field.Type.Elem().Kind()))
|
||||||
|
} else {
|
||||||
|
GetSysLog().Info("UnmarshalModel unknow fieldPtrType:%s", field.Type.Elem());
|
||||||
}
|
}
|
||||||
case reflect.Uint,
|
|
||||||
reflect.Uint8,
|
|
||||||
reflect.Uint16,
|
|
||||||
reflect.Uint32,
|
|
||||||
reflect.Uint64:
|
|
||||||
{
|
|
||||||
mVal.Field(i).SetUint(uint64(q5.ToInt64(fieldVal)))
|
|
||||||
}
|
}
|
||||||
case reflect.Float32,
|
default:
|
||||||
reflect.Float64:
|
|
||||||
{
|
{
|
||||||
mVal.Field(i).SetFloat(q5.ToFloat64(fieldVal))
|
GetSysLog().Info("UnmarshalModel unknow fieldType:%s", field.Type.Kind());
|
||||||
}
|
}
|
||||||
case reflect.String:
|
|
||||||
{
|
|
||||||
mVal.Field(i).SetString(fieldVal)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user