【发布时间】:2016-01-20 14:47:24
【问题描述】:
我正在使用 Newtonsoft 的 Json.NET 7.0.0.0 将 C# 中的类序列化为 JSON:
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 });
这里json的值是
{ "Y": [] }
但如果 Y 是一个空列表,我希望它是 { }。
我找不到令人满意的方法来实现这一目标。也许使用自定义合同解析器?
【问题讨论】:
-
另外,我不想在集合上添加属性,因为我的类有很多属性,并且应该平等对待所有属性。
-
而且你不能使用简单的 C# "if'?
-
@st_stefanov 如果
Foo有多个集合,但其中只有一些是空的,这将如何工作,需要解释一下吗? :) -
好吧,无论如何你都想序列化类,但是处理类内部的空集合...