我想序列化一些遗留的对象,“懒创建”各种列表。我无法改变传统行为。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, “数字”:[] }
我会喜欢得到: { “身份”:123 }
也就是说,我想跳过任何列表,collec tions,数组或空的东西。
你可以简化为'return(_numbers.Count> 0);' –
我喜欢它!好一个。 –
我可以用通用的方法吗?我不知道所有的属性名称,但希望所有空数组为空。 – Rohit