さまざまなリストを「怠惰に作成する」レガシーオブジェクトをシリアライズしようとしています。私は従来の動作を変更することはできません。Newtonsoft Json.NETは空のリストのシリアライズをスキップできますか?
私はこの簡単な例には、それを煮詰めた:私は
なる現在の結果である
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);
}
}
: {[] "同一性":123、 "番号"}好きなもの: { "ID":123 }
つまり、私はリストをすべてスキップしたい配列、または空であるものなどが含まれます。
「return(_numbers.Count> 0);」に簡略化することができます。 –
私はそれが好きです!良いですね。 –
一般的な方法で対応できますか?私はすべてのプロパティ名を知っているわけではありませんが、すべての空の配列をnullにする必要があります。 – Rohit