c# – 从json序列化对象中删除空字符串属性
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – 从json序列化对象中删除空字符串属性,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2556字,纯文字阅读大概需要4分钟。
内容图文
![c# – 从json序列化对象中删除空字符串属性](/upload/InfoBanner/zyjiaocheng/761/45bd856f99df44bb937386f32efa7d43.jpg)
我上课了.它有几个属性可以说10.在这10个中,3个填充了剩下的7个数据是空白的.i.e.空字符串“”使用此link作为参考.我想只显示NON-NULL和NON-EMPTY字符串属性.但最终输出有10个属性.我只希望看到3.
namespace Mynamespace.ValueObjects
{
[DataContract]
public class User
{
[DataMember(Name ="userID", IsRequired = false,EmitDefaultValue = false)]
public string userID { get; set; }
[DataMember(Name ="ssn", IsRequired = false,EmitDefaultValue = false)]
public string ssn { get; set; }
[DataMember(Name ="empID", IsRequired = false,EmitDefaultValue = false)]
public string empID { get; set; }
[DataMember(Name ="schemaAgencyName", IsRequired = false,EmitDefaultValue = false)]
public string schemaAgencyName { get; set; }
[DataMember(Name ="givenName", IsRequired = false,EmitDefaultValue = false)]
public string givenName { get; set; }
[DataMember(Name ="familyName", IsRequired = false,EmitDefaultValue = false)]
public string familyName { get; set; }
[DataMember(Name ="password", IsRequired = false,EmitDefaultValue = false)]
public string password { get; set; }
....
}
}
我也尝试过
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
作为属性也是.没运气.我也是这样的
var t = JsonConvert.SerializeObject(usr, Newtonsoft.Json.Formatting.None,
new JsonSerializerSettings
{NullValueHandling = NullValueHandling.Ignore});
其中’usr’是User实例.我的意思是,没有运气,’t’回来了所有10个属性
{"userID":"vick187","ssn":"","empID":"","schemaAgencyName":"","givenName":"","familyName":"","password":"pwd1234",...}
因此,您只能看到填充了用户ID和密码.但我有ssn,empID等仍然出现.我只想要用户ID和密码.任何帮助,将不胜感激.
解决方法:
只装饰属性[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]只应该做你想要的.除非属性设置为空字符串.
只是想知道,为什么需要DataMemeber属性?
这是一个工作dotnetfiddle的链接
using System;
using Newtonsoft.Json;
using System.ComponentModel;
public class Program
{
public static void Main()
{
var user = new User();
user.UserID = "1234";
user.ssn = "";
var settings = new JsonSerializerSettings();
settings.NullValueHandling = NullValueHandling.Ignore;
settings.DefaultValueHandling = DefaultValueHandling.Ignore;
Console.WriteLine(JsonConvert.SerializeObject(user, settings));
}
}
public class User
{
[DefaultValue("")]
public string UserID { get; set; }
[DefaultValue("")]
public string ssn { get; set; }
[DefaultValue("")]
public string empID { get; set; }
[DefaultValue("")]
public string schemaAgencyName { get; set; }
[DefaultValue("")]
public string givenName { get; set; }
[DefaultValue("")]
public string familyName { get; set; }
[DefaultValue("")]
public string password { get; set; }
}
内容总结
以上是互联网集市为您收集整理的c# – 从json序列化对象中删除空字符串属性全部内容,希望文章能够帮你解决c# – 从json序列化对象中删除空字符串属性所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。