none
Wep Api Json Serialize Hatası RRS feed

  • Soru

  • Merhabalar aşağıdaki yazdığım kod ile kullanıcı adını parametre olarak verip bu kullanıcı adına ait kullanıcıyı çekmek istiyorum ancak The 'ObjectContent`1' type failed to serialize the response body for content type 'application/json; charset=utf-8' hatasını alıyorum biraz araştırma yaptığımda Global.asax.cs'e 

     config.Formatters.Remove(config.Formatters.XmlFormatter);
     config.Formatters.JsonFormatter.SerializerSettings.Reference LoopHandling=Newtonsoft.Json.ReferenceLoopHandling.Serialize;

    kodlarını ekledim ancak ayn hatayı almaya devam ediyorum.

     [Route("api/user/username/{username}")]
            [HttpGet]
            public HttpResponseMessage GetUsername(string username)
            {
                try
                {
                    using (TestEntities db = new TestEntities())
                    {
                        var user = db.USERS.FirstOrDefault(x => x.User_Name == username);
                        if (user == null)
                        {
                            return Request.CreateResponse(HttpStatusCode.NotFound, "Böyle bir kullanıcı yok");
                        }
                        else
                        {
                            return Request.CreateResponse(HttpStatusCode.OK, user);
                        }
    
    
                    }
    
                }
                catch(Exception e)
                {
                    return Request.CreateErrorResponse(HttpStatusCode.BadRequest, e);
                }
    
            }
    Teşekkürler.

    30 Kasım 2018 Cuma 19:40

Tüm Yanıtlar

  • Bu hata btrowserde mi görünüyor?
    Global.asax daki kodları kaldırıp yerine;

    GlobalConfiguration.Configuration.Formatters.Clear();
    GlobalConfiguration.Configuration.Formatters.Add(new JsonMediaTypeFormatter());
    
    eklermisin.


    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com

    30 Kasım 2018 Cuma 21:17
    Moderatör
  • Deleted
    1 Aralık 2018 Cumartesi 00:52
  • Browser veya Postman her ikisinde de alıyorum Önay Hocam.Yazmış olduğunuz config ile de sonuç değişmiyor.Şöyle bir çözüm ürettim ne kadar sağlıklı bilmiyorum ama :) Tavsiyelerinize açığım kodla ilgili.

      [Route("api/user/friendstatu/{sender}/{receiver}")]
            [HttpGet]
            public IHttpActionResult GetUserFriendStatu(int sender,int receiver)
            {
                try
                {
                    using (TestEntities db = new TestEntities())
                    {
                        var statu = db.FRIENDS.Where(x=>x.Sender_Id==sender&&x.Receiver_Id==receiver).Select(x => new {x.id,x.Sender_Id,x.Receiver_Id,x.Status_Code }).ToList();
                        if (statu.Count == 0)
                        {
                            return NotFound();
                        }
                        else
                        {
                            return Ok(statu.FirstOrDefault());
                        }
    
    
                    }
    
                }
                catch (Exception e)
                {
                    return BadRequest(e.ToString());
                }
    
    
            }

    1 Aralık 2018 Cumartesi 09:28
  • Furkan Hocam öneri ve cevabın için teşekkürler ancak dediğin gibi yapmam sonucu değiştirmedi Wep Apinin yapısında bir sıkıntıdan şüpheleniyorum :) Yukarıda Önay Hocama verdiğim cevapta da görebileceğiniz üzere bir çözüm ürettim istediğim sonucu veriyor ama ne kadar sağlıklı tam emin olamadım :) Tavsiyelerinize açığım bir de NoContent kullanımını örneklendirir misiniz? 
    1 Aralık 2018 Cumartesi 09:34