|
@@ -7,7 +7,6 @@ package xorm
|
|
|
import (
|
|
import (
|
|
|
"database/sql"
|
|
"database/sql"
|
|
|
"database/sql/driver"
|
|
"database/sql/driver"
|
|
|
- "encoding/json"
|
|
|
|
|
"errors"
|
|
"errors"
|
|
|
"fmt"
|
|
"fmt"
|
|
|
"reflect"
|
|
"reflect"
|
|
@@ -103,7 +102,7 @@ func (session *Session) bytes2Value(col *core.Column, fieldValue *reflect.Value,
|
|
|
case reflect.Complex64, reflect.Complex128:
|
|
case reflect.Complex64, reflect.Complex128:
|
|
|
x := reflect.New(fieldType)
|
|
x := reflect.New(fieldType)
|
|
|
if len(data) > 0 {
|
|
if len(data) > 0 {
|
|
|
- err := json.Unmarshal(data, x.Interface())
|
|
|
|
|
|
|
+ err := DefaultJSONHandler.Unmarshal(data, x.Interface())
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
session.engine.logger.Error(err)
|
|
session.engine.logger.Error(err)
|
|
|
return err
|
|
return err
|
|
@@ -117,7 +116,7 @@ func (session *Session) bytes2Value(col *core.Column, fieldValue *reflect.Value,
|
|
|
if col.SQLType.IsText() {
|
|
if col.SQLType.IsText() {
|
|
|
x := reflect.New(fieldType)
|
|
x := reflect.New(fieldType)
|
|
|
if len(data) > 0 {
|
|
if len(data) > 0 {
|
|
|
- err := json.Unmarshal(data, x.Interface())
|
|
|
|
|
|
|
+ err := DefaultJSONHandler.Unmarshal(data, x.Interface())
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
session.engine.logger.Error(err)
|
|
session.engine.logger.Error(err)
|
|
|
return err
|
|
return err
|
|
@@ -130,7 +129,7 @@ func (session *Session) bytes2Value(col *core.Column, fieldValue *reflect.Value,
|
|
|
} else {
|
|
} else {
|
|
|
x := reflect.New(fieldType)
|
|
x := reflect.New(fieldType)
|
|
|
if len(data) > 0 {
|
|
if len(data) > 0 {
|
|
|
- err := json.Unmarshal(data, x.Interface())
|
|
|
|
|
|
|
+ err := DefaultJSONHandler.Unmarshal(data, x.Interface())
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
session.engine.logger.Error(err)
|
|
session.engine.logger.Error(err)
|
|
|
return err
|
|
return err
|
|
@@ -259,7 +258,7 @@ func (session *Session) bytes2Value(col *core.Column, fieldValue *reflect.Value,
|
|
|
case core.Complex64Type.Kind():
|
|
case core.Complex64Type.Kind():
|
|
|
var x complex64
|
|
var x complex64
|
|
|
if len(data) > 0 {
|
|
if len(data) > 0 {
|
|
|
- err := json.Unmarshal(data, &x)
|
|
|
|
|
|
|
+ err := DefaultJSONHandler.Unmarshal(data, &x)
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
session.engine.logger.Error(err)
|
|
session.engine.logger.Error(err)
|
|
|
return err
|
|
return err
|
|
@@ -270,7 +269,7 @@ func (session *Session) bytes2Value(col *core.Column, fieldValue *reflect.Value,
|
|
|
case core.Complex128Type.Kind():
|
|
case core.Complex128Type.Kind():
|
|
|
var x complex128
|
|
var x complex128
|
|
|
if len(data) > 0 {
|
|
if len(data) > 0 {
|
|
|
- err := json.Unmarshal(data, &x)
|
|
|
|
|
|
|
+ err := DefaultJSONHandler.Unmarshal(data, &x)
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
session.engine.logger.Error(err)
|
|
session.engine.logger.Error(err)
|
|
|
return err
|
|
return err
|
|
@@ -604,14 +603,14 @@ func (session *Session) value2Interface(col *core.Column, fieldValue reflect.Val
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
if col.SQLType.IsText() {
|
|
if col.SQLType.IsText() {
|
|
|
- bytes, err := json.Marshal(fieldValue.Interface())
|
|
|
|
|
|
|
+ bytes, err := DefaultJSONHandler.Marshal(fieldValue.Interface())
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
session.engine.logger.Error(err)
|
|
session.engine.logger.Error(err)
|
|
|
return 0, err
|
|
return 0, err
|
|
|
}
|
|
}
|
|
|
return string(bytes), nil
|
|
return string(bytes), nil
|
|
|
} else if col.SQLType.IsBlob() {
|
|
} else if col.SQLType.IsBlob() {
|
|
|
- bytes, err := json.Marshal(fieldValue.Interface())
|
|
|
|
|
|
|
+ bytes, err := DefaultJSONHandler.Marshal(fieldValue.Interface())
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
session.engine.logger.Error(err)
|
|
session.engine.logger.Error(err)
|
|
|
return 0, err
|
|
return 0, err
|
|
@@ -620,7 +619,7 @@ func (session *Session) value2Interface(col *core.Column, fieldValue reflect.Val
|
|
|
}
|
|
}
|
|
|
return nil, fmt.Errorf("Unsupported type %v", fieldValue.Type())
|
|
return nil, fmt.Errorf("Unsupported type %v", fieldValue.Type())
|
|
|
case reflect.Complex64, reflect.Complex128:
|
|
case reflect.Complex64, reflect.Complex128:
|
|
|
- bytes, err := json.Marshal(fieldValue.Interface())
|
|
|
|
|
|
|
+ bytes, err := DefaultJSONHandler.Marshal(fieldValue.Interface())
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
session.engine.logger.Error(err)
|
|
session.engine.logger.Error(err)
|
|
|
return 0, err
|
|
return 0, err
|
|
@@ -632,7 +631,7 @@ func (session *Session) value2Interface(col *core.Column, fieldValue reflect.Val
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
if col.SQLType.IsText() {
|
|
if col.SQLType.IsText() {
|
|
|
- bytes, err := json.Marshal(fieldValue.Interface())
|
|
|
|
|
|
|
+ bytes, err := DefaultJSONHandler.Marshal(fieldValue.Interface())
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
session.engine.logger.Error(err)
|
|
session.engine.logger.Error(err)
|
|
|
return 0, err
|
|
return 0, err
|
|
@@ -645,7 +644,7 @@ func (session *Session) value2Interface(col *core.Column, fieldValue reflect.Val
|
|
|
(fieldValue.Type().Elem().Kind() == reflect.Uint8) {
|
|
(fieldValue.Type().Elem().Kind() == reflect.Uint8) {
|
|
|
bytes = fieldValue.Bytes()
|
|
bytes = fieldValue.Bytes()
|
|
|
} else {
|
|
} else {
|
|
|
- bytes, err = json.Marshal(fieldValue.Interface())
|
|
|
|
|
|
|
+ bytes, err = DefaultJSONHandler.Marshal(fieldValue.Interface())
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
session.engine.logger.Error(err)
|
|
session.engine.logger.Error(err)
|
|
|
return 0, err
|
|
return 0, err
|