Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# JSON.Net忽略仅具有空属性的类_C#_.net_Json.net - Fatal编程技术网

C# JSON.Net忽略仅具有空属性的类

C# JSON.Net忽略仅具有空属性的类,c#,.net,json.net,C#,.net,Json.net,跟进我的最后一个问题(http://stackoverflow.com/questions/8027748/render-c-sharp-class-as-javascript/8027824#8027824),我现在使用JSON.net将一些类转换为JSON。很好,但是我有一些类包含其他类作为成员。例如: public class Parent { public Child Child { get; set; } public string Var { get; set; } }

跟进我的最后一个问题(http://stackoverflow.com/questions/8027748/render-c-sharp-class-as-javascript/8027824#8027824),我现在使用JSON.net将一些类转换为JSON。很好,但是我有一些类包含其他类作为成员。例如:

public class Parent
{
   public Child Child { get; set; }
   public string Var { get; set; }
}
当我使用json.net呈现它时,我可以将序列化程序设置为忽略空值。这意味着未设置Var成员时不会打印它。基于其价值观,我希望儿童成员也有同样的行为。因此,当子对象的所有成员都为null时,整个类呈现为“{}”,应该在父对象中一起忽略它


这可能吗

我自己还没有使用JSON.Net,所以我不知道这是不是一种方法


但我可能会建议,如果您能够为
Child
实例插入自己的
JsonConverter
:您可以使用反射来确定是否所有字段都为空(或者如果字段不太多,只需手动测试)。如果是这样,请生成
{}
,如果不是这样,则委托给其他转换器。

我自己没有使用JSON.Net,所以我不知道这是否是实现的方法

但我可能会建议,如果您能够为
Child
实例插入自己的
JsonConverter
:您可以使用反射来确定是否所有字段都为空(或者如果字段不太多,只需手动测试)。如果是这样,则生成
{}
,如果不是这样,则委托给否则将使用的任何转换器