首页 > C# >  C# 如何使用 json.net 忽略类中的属性(如果为 null)

 C# 如何使用 json.net 忽略类中的属性(如果为 null)

上一篇 下一篇

我正在使用 Json.NET 将类序列化为 JSON。

我有这样的课程:

class Test1
{
    [JsonProperty("id")]
    public string ID { get; set; }
    [JsonProperty("label")]
    public string Label { get; set; }
    [JsonProperty("url")]
    public string URL { get; set; }
    [JsonProperty("item")]
    public List<Test2> Test2List { get; set; }
}

我想仅在 是 时向属性添加属性。如果它不为空,那么我想将其包含在我的 json 中。JsonIgnore()Test2ListTest2Listnull

分割线

网友回答:

使用该属性的替代解决方案:JsonProperty

[JsonProperty(NullValueHandling=NullValueHandling.Ignore)]
// or
[JsonProperty("property_name", NullValueHandling=NullValueHandling.Ignore)]

// or for all properties in a class
[JsonObject(ItemNullValueHandling = NullValueHandling.Ignore)]

如本在线文档所示。

分割线

网友回答:

根据James Newton King的说法:如果您自己创建序列化程序而不是使用JavaScriptConvert,则可以设置忽略一个属性。NullValueHandling

下面是一个示例:

JsonSerializer _jsonWriter = new JsonSerializer {
                                 NullValueHandling = NullValueHandling.Ignore
                             };

或者,正如@amit所建议的那样

JsonConvert.SerializeObject(myObject, 
                            Newtonsoft.Json.Formatting.None, 
                            new JsonSerializerSettings { 
                                NullValueHandling = NullValueHandling.Ignore
                            });

分割线

网友回答:

JSON.NET 还遵循 上的属性,以防您不想向模型添加特定于 Newtonsoft 的属性:EmitDefaultValueDataMemberAttribute

[DataMember(Name="property_name", EmitDefaultValue=false)]

模板简介:该模板名称为【 C# 如何使用 json.net 忽略类中的属性(如果为 null)】,大小是暂无信息,文档格式为.编程语言,推荐使用Sublime/Dreamweaver/HBuilder打开,作品中的图片,文字等数据均可修改,图片请在作品中选中图片替换即可,文字修改直接点击文字修改即可,您也可以新增或修改作品中的内容,该模板来自用户分享,如有侵权行为请联系网站客服处理。欢迎来懒人模板【C#】栏目查找您需要的精美模板。

相关搜索
  • 下载密码 lanrenmb
  • 下载次数 490次
  • 使用软件 Sublime/Dreamweaver/HBuilder
  • 文件格式 编程语言
  • 文件大小 暂无信息
  • 上传时间 04-24
  • 作者 网友投稿
  • 肖像权 人物画像及字体仅供参考
栏目分类 更多 >
热门推荐 更多 >
微信模板 响应式 微信图片 微信素材 html5 单页式简历模板 微信文章 企业网站 自适应 微信公众平台
您可能会喜欢的其他模板