我想序列化一些遺留的對象,「懶創建」各種列表。我無法改變傳統行爲。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