2013-11-15 9 views

cevap

1

Burada boş değerleri yok saymak için değiştirilmiş bir sürümün bir bağlantısı var. Yalnızca sıfırlayıcıları yok saymak için serializer seçeneklerini ayarlamanız gerekir.

Restsharp that ignores null values

5

Alternatif, önce serialize boş değerler göz ardı destekleyen diğer json kütüphaneleri (json.net, servicestack.text, vb) kullanabilirsiniz:

RestRequest request = new RestRequest(); 
... 
string jsonString = ThirdPartySerialization(jsonObject); 
request.AddParameter("application/json", jsonString, ParameterType.RequestBody); 
3

kullanabilirsiniz boş değerleri göz ardı etmek için varsayılan SimpleJson JSON serializer ile birlikte bir özel IJsonSerializerStrategy.

Bunu yapmanın en kolay yolu, PocoJsonSerializerStrategy'u aşağıdaki gibi genişletmektir. ( ) Ve sonra varsayılan seri hale getirici stratejisi olarak kullanın.

SimpleJson.SimpleJson.CurrentJsonSerializerStrategy = new IgnoreNullValuesJsonSerializerStrategy(); 
+0

Bunun için teşekkürler, ancak şu anda en az 106.1.0 olan RestSharp'ın şu anki sürümü ile çalışmıyor şu anda: https: // github. com/restsharp/RestSharp/issues/1018 Umarız bu bir kez çözülürse tekrar çalışır veya en azından benzer bir şey olur. –

+0

@JamesEby Bu yanlıştır. Bu çözüm hala çalışıyor ve bahsettiğiniz sorunla ilgili değil. Gönderdiğim çözüm, seri hale getirme stratejisini doğrudan RestSharp'ın kullandığı statik SimpleJson sınıfında yapılandırır ve bu nedenle RestSharp'daki sınırlı yapılandırma seçeneklerinden etkilenmez. Resmi belgelerde bile, bu gibi serileştirme stratejisini (bu sayfanın en altında) özelleştirmenin mümkün olduğunu belirtmiştir: https://github.com/restsharp/RestSharp/wiki/Deserialization – Conyc

+0

Demek istediğim Artık bu statik sınıf kodda mevcut değil veya en azından kaldırılmış gibi görünüyor. En son sürüm olarak RestSharp'da böyle bir SimpleJson yapılandırma sınıfı bulamadım. Eğer yanılıyorsam ve hala görüyorsanız lütfen bana bildirin. –