required.Password == "" {
                  
                  
                      return errors.New("license_key field required")
                  
                  
                    }
                  
                  
                  }
                  
                  
                  есть функций которая должна вызываться по офиц библиотеки  GO сама в функцией json.Unmarshal
                  
                  
                  func TestUnmarshalJSON2(t *testing.T) {
                  
                  
                    testJSON := []byte(`{
                  
                  
                      "email":"1990@t.by",
                  
                  
                      "first_name": "first_name",
                  
                  
                      "last_name": "last_name",
                  
                  
                      "password": "",
                  
                  
                      "country": "Belarus",
                  
                  
                      "language":"english"
                  
                  
                      }`)
                  
                  
                    var provider front.ProviderFront
                  
                  
                    err := json.Unmarshal(testJSON, &provider)
                  
                  
                    fmt.Printf("%+v\n", provider)
                  
                  
                    log.Println(provider)
                  
                  
                    log.Println(err)
                  
                  
                  
                  
                  
                  }
                  
                  
                  Но никаких изменений ошибок нет на пустоту пароля и код в дебаги туда даже не залетает почему это может быть?
                  
                  
                
Покажите весь UnmarshalJSON, ибо не видно, что это за required. Хотя я считаю, что валидации не место в UnmarshalJSON...
 Ярослав
                          
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Ярослав
                          
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  func (p *ProviderFront) UnmarshalJSON(data []byte) error { request := struct { Email string `json:"email"` Password string `json:"password"` }{} err := json.Unmarshal(data, &request) if err != nil { return err } if len(request.Email) == 0 { return errors.New("email field required") } if len(request.Password) == 0 { return errors.New("password can't be empty") } p.Email = request.Email p.Password = request.Password log.Println("test YES") return nil }
Судя по логу - все работает... {Email: Password:} 2022/05/05 14:24:49 { } 2022/05/05 14:24:49 password can't be empty
Обсуждают сегодня