JSON.Net Kullanarak Serileştirme Sırasında Alan ve Özelliklerin Koşullu Olarak Nasıl Tutulduğu Nasıl Sağlanır? JsonIgnoreAttribute
'dan devralıyorum, çünkü sealed
sınıfı. Ne yapmalıyım?JSON.Net Kullanarak Serileştirme Sırasında Koşulları ve Alanları Yoksaymak Nasıl Yapılır?
cevap
: ShouldSerialize ihtiyaçlarınızı uymuyorsa
http://www.newtonsoft.com/json/help/html/ConditionalProperties.htm
public class Employee
{
public string Name { get; set; }
public Employee Manager { get; set; }
public bool ShouldSerializeManager()
{
// don't serialize the Manager property if an employee is their own manager
return (Manager != this);
}
}
, sen ContractResolvers ile serileştirme tam kontrol alabilir: JSON.NET sitesinde iyi bir örnek var cevap. JsonConverter
'dan miras alıyorum ve yeni bir çevirici oluşturuyorum.
public class CustomJsonConverter : JsonConverter
{
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
var list = (IList)value;
JArray s = new JArray();
foreach (var item in list)
{
JToken token = JToken.FromObject(item);
JObject obj = new JObject();
foreach (JProperty prop in token)
{
if (prop.Name != "Title") // your logic here
obj.Add(prop);
}
s.Add(obj);
}
s.WriteTo(writer);
}
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
throw new NotImplementedException("Unnecessary because CanRead is false. The type will skip the converter.");
}
public override bool CanRead
{
get { return false; }
}
public override bool CanConvert(Type objectType)
{
return objectType != typeof(IList);
}
}
JSON.NET'in ShouldSerialize -syntax uygulamasını kullanabilirsiniz. Bulduğum http://www.newtonsoft.com/json/help/html/ContractResolver.htm
Bu işe başlamak için hiç şans yoktu, breakpoints bu asla serileştirme sırasında bile çağrılmadığını gösteriyor. – Wobbles
ShouldSerialize-sözdizimi, Foo özelliği için, Foo'nun serileştirilmesi gerekip gerekmediğine dair doğru veya yanlış döndürecek bir ShouldSerializeFoo() yöntemine sahip olacak şekilde bir kuraldır. – CharlieNoTomatoes
- 1. Serde kullanarak serileştirme sırasında alanlar nasıl dönüştürülür?
- 2. Json.NET serileştirme öncesi ve sonrası görüşmeler
- 3. JSON.NET: Serileştirme işleminde bilinmeyen üyeler
- 4. Sınırlandırılmış Json serileştirme ve serileştirme
- 5. serileştirme verileri?
- 6. JSON.NET ve LINQ kullanarak diziler
- 7. Bir @ # sembolünü kullanarak json.net ve bir json özelliği kullanarak bir @ serileştirme
- 8. Java'dan Jackson'a JSON serileştirme: Para alanları
- 9. WebAPI C'deki istek serileştirme sırasında yakalama istisnası #
- 10. XML serileştirme işlemi nasıl daha hızlı yapılır?
- 11. XML serileştirme için önekler ve ad alanları ekleyin
- 12. Serileştirme serileştirme ve serileştirme ile ilgili sorun
- 13. Ruby ve Java arasında protobuf nesnesini serileştirme/ayrıştırma nasıl yapılır?
- 14. JSON.NET
- 15. Nasıl Yapılır Enum alanları dize olarak yazdırılır?
- 16. @JsonIdentityInfo kullanıldığında null ID serileştirme sırasında
- 17. Json.Net serileştirme yöntemini değişmez sınıflarla kullanmanın bir yolu var mı?
- 18. Json.NET
- 19. JSON alanlarının değiştirileceği yer olan Newtonsoft JSON.net serileştirme hatası
- 20. ondalık alanları için edittext alanı nasıl yapılır
- 21. Kayıt alanları üzerinde nasıl yineleme yapılır?
- 22. harita ve shared_ptr serileştirme?
- 23. Json.Net
- 24. log4net filter - nasıl yazılır ve günlük iletilerini yoksaymak için filtrelenir
- 25. Json.NET
- 26. Düğüm ve Express'i kullanarak müşteri/istemci stili alt etki alanları nasıl yapılır
- 27. ağ koşulları sekmesindeki kullanıcı aracısının nasıl çalıştığı
- 28. Onclick sırasında parçalar arasında nasıl geçiş yapılır?
- 29. MVC Html.BeginForm kullanarak Alanları
- 30. İstisnai Yoksaymak İçin Zorla Laravel
sen [ScriptIgnore] (http://stackoverflow.com/questions/10169648/how-to-exclude-property-from-json-serialization) kontrol ettin ? – Kurubaran
@Kurubaran evet ama şartlı olarak bir alanı görmezden gelmek istiyorum .. –