Używam Newtonsoft za Json.NET 7.0.0.0 do serializacji klas do JSON z C#:Jak pominąć pustych zbiorów podczas szeregowania z Json.NET
class Foo
{
public string X;
public List<string> Y = new List<string>();
}
var json =
JsonConvert.SerializeObject(
new Foo(),
Formatting.Indented,
new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore });
Wartość json
tutaj jest
{ "Y": [] }
, ale chciałbym, aby było { }
, jeśli Y
jest pustą listą.
Nie mogłem znaleźć zadowalającego sposobu, aby to osiągnąć. Może z niestandardowym rozwiązaniem rozstrzygającym umowę?
Ponadto wolałbym nie dodawać atrybutów do kolekcji, ponieważ moje zajęcia mają wiele z nich i wszystkie powinny być traktowane jednakowo. –
I nie możesz użyć prostego C# "if"? –
@st_stefanov Jak by to działało, gdyby 'Foo' miał wiele kolekcji, tylko niektóre z nich były puste, czy chcesz wyjaśnić? :) –