İstemcimden güncelleştirilmiş bir nesneyi REST sunucusu API'sine POST yapmaya çalışıyorum. RestSharp kullanıyorum ve neslimin JSON temsilcisini isteğimin gövdesine ekliyorum. Ancak, serileştirilmiş nesnenin dize temsili yanlış biçime sahip. Sunucu bunu reddediyor.JSON serileştirilmiş çıktı C# çıkış biçimi biçimlendirmesine sahip
Benim isteği ben Json.NET, RestSharp iç Json serileştiriciye ile ve System.Web.Script gelen JavaScriptSerializer ile benim nesne seri çalıştık
PUT https://myapp.net/api/PriceListItems/151276 HTTP/1.1
Accept: application/json, application/xml, text/json, text/x-json, text/javascript, text/xml
User-Agent: RestSharp/104.4.0.0
Content-Type: application/json
Host: myapp.net
Content-Length: 75
Accept-Encoding: gzip, deflate
"{\"Id\":151276,\"AgendaId\":0,\"CurrencyId\":1,\"Code\":\"\",\"Price\":7.0}"
böyle bir şey (Ben bunu elde etmek için Fiddler kullanılır) görünüyor .Serialization. Hepsi böyle bir biçimde bir dize döndürür. Bu tür biçimlendirmenin nedeninin C# 'in çift tırnaktan kaçtığını biliyorum, böylece içeride düzgün görüntülenebilir, ancak bu çıkış formatı olmadan isteğime nasıl geçeceğimi anlayamıyorum. JSON'un düzgün oluşturulmuş bir sunucu tarafından kabul edildiğini biliyorum.
Bu
public class PriceListItem
{
public static PriceListItem CreatePriceListItem(int id, int agendaId, int currencyId, string code, string unit, decimal price)
{
var priceListItem = new PriceListItem
{
Id = id,
AgendaId = agendaId,
CurrencyId = currencyId,
Code = code,
Price = price
};
return priceListItem;
}
public int Id { get; set; }
public int AgendaId { get; set; }
public int CurrencyId { get; set; }
public string Code { get; set; }
public decimal Price { get; set; }
DÜZENLEME gibi görünüyor seri hale getirmek çalışıyorum nesne: buradan cevaplara benim çözüm taşındı.
Çifte serileştirme işleminiz var gibi görünüyor. Kontrolörünüzün PUT Eylemini de göstermediniz mi? – Ghukas
Evet, çift serileştirme tam olarak benim sorunumdu. Bu bilgiyi eklemek için sadece orijinal gönderiye bilgi ekliyordum. Teşekkür ederim. – filipv
@filipv çözümünüzü (çift seri hale getirilmiş) bir yanıtın içine taşımak ve kabul etmek isteyebilirsiniz. Daha sonra bu problemi yaşayan insanlar çözümünüzü daha iyi bulabilirler. –