0x4a52466c696e74 3 mesi fa
parent
commit
d8dff5770e
2 ha cambiato i file con 5 aggiunte e 4 eliminazioni
  1. 2 1
      serialize.go
  2. 3 3
      z_test.go

+ 2 - 1
serialize.go

@@ -108,7 +108,7 @@ loop:
 		// проверяем тег, если он есть
 		tag := fType.Tag.Get("rest")
 		log.Println("=================================", fType.Name)
-		if fType.Type.Kind() == reflect.Ptr {
+		if fType.Anonymous && fType.Type.Kind() == reflect.Ptr {
 			log.Println("PTR...")
 			elem := fType.Type.Elem()
 			if elem.Kind() == reflect.Struct {
@@ -116,6 +116,7 @@ loop:
 				if fVal.IsNil() {
 					log.Println("IS_NIL")
 					fVal.Set(reflect.New(elem))
+					log.Println(fVal.IsNil())
 				}
 				if ierr := parseStruct(from, fVal.Elem(), prefixFieldName(fieldName, fType.Name)); ierr != nil {
 					return ierr

+ 3 - 3
z_test.go

@@ -77,7 +77,6 @@ func (s *RR) RestFields(result json.Map, fields FieldList) {
 }
 
 func TestFielderVal(t *testing.T) {
-
 	rr := &RR{
 		ID:      1,
 		Name:    "okko",
@@ -239,14 +238,14 @@ type RRequest struct {
 
 type Tickers struct {
 	*RRequest
+	Cool      *RRequest
 	TickerIDS []string
 }
 
 func TestSerializeRaw(t *testing.T) {
 	m := json.Map{
 		"ticker_ids": []string{"1", "2", "3"},
-		"count":      10,
-		"okko":       "ok-val",
+		"okko":       "10",
 	}
 	var ti Tickers
 	if err := Serialize(m, &ti); err != nil {
@@ -254,6 +253,7 @@ func TestSerializeRaw(t *testing.T) {
 	}
 	log.Println(ti.TickerIDS)
 	log.Println(ti.RRequest)
+	log.Println(ti.Cool)
 }
 
 func TestServer(t *testing.T) {