Soran
Wep Api Json Serialize Hatası

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.
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
-
-
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()); } }
-
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?