Próbuję serializować niektóre starsze obiekty, które "leniwy tworzy" różne listy. Nie mogę zmienić zachowania starszego typu.Czy NewtonSoft Json.NET może pominąć szeregowanie pustych list?
I gotuje go w tym prostym przykładzie:
public class Junk
{
protected int _id;
[JsonProperty(PropertyName = "Identity")]
public int ID
{
get
{
return _id;
}
set
{
_id = value;
}
}
protected List<int> _numbers;
public List<int> Numbers
{
get
{
if(null == _numbers)
{
_numbers = new List<int>();
}
return _numbers;
}
set
{
_numbers = value;
}
}
}
class Program
{
static void Main(string[] args)
{
Junk j = new Junk() { ID = 123 };
string newtonSoftJson = JsonConvert.SerializeObject(j, Newtonsoft.Json.Formatting.Indented);
Console.WriteLine(newtonSoftJson);
}
}
obecne wyniki są następujące: { "Identyczność": 123, "Numery" [] }
bym otrzymasz: { "Tożsamość": 123 }
To znaczy, chciałbym pominąć wszystkie listy, collec tions, arrays lub takie rzeczy, które są puste.
Możesz uprościć to do 'return (_numbers.Count> 0);' –
Podoba mi się! Niezłe. –
mogę zrobić w sposób ogólny? Nie znam wszystkich nazw właściwości, ale chcę, aby wszystkie puste tablice miały wartość zerową. – Rohit