Bir web hizmetinde kullanmak üzere Json'a serileştirmek istediğim bir dizi karmaşık iş nesnesine sahibim. Şu anda Json'u üretmek için DataContractJsonSerializer kullanıyorum, ancak varsayılan XmlReader, Base64 dizelerini işleyemediği için seri hale getirme üzerinde balks.JS5.NET serileştirme geçersiz kılınırsa ToString
'u okuduktan sonra Json.Net ile ilgili olumlu yorumlar, denemeye karar verdim. Şaşırtıcı bir şekilde, en basit durum, iş nesnesi ToString() yöntemini geçersiz kılarsa hatalı çıktı üretir. JSON oluşturmak yerine, sadece dize değerini yayar. Örneğin, aşağıdaki ifade, yalnızca bir dizgi üretir; çünkü seri hale getirici, nesneyi basit bir dize olarak görüntülediğinde görünür.
public class MyClass {
public string Title{get;set;}
public override ToString(){ return Title; }
public string ToJson(){
return JsonConvert.SerializeObject(this);
}
}
Json biçimlendirilmiş çıktı yerine, tek alacağım başlık dizesidir. Bunu önlemek için nesneyi özel bir şekilde işaretlemem gerekir mi? İş nesnesi hiyerarşisi, ToString() işlevini geçersiz kılan birçok nesne içerdiğinden, özel öznitelikleri vb. Tanıtmaktan kaçınmayı tercih ederim.
Kodunuz ince, çalışır "ToString" yönteminde bir şey "ToJson". –