JavaScriptSerializer可以排除具有空值/默认值的属性吗?
我正在使用JavaScriptSerializer序列化一些实体对象。
问题是,许多公共属性都包含空值或默认值。有什么方法可以使JavaScriptSerializer排除具有null或默认值的属性?
我希望得到的JSON不再那么冗长。
回答:
对我有用的解决方案:
序列化的类和属性将如下装饰:
[DataContract]public class MyDataClass
{
[DataMember(Name = "LabelInJson", IsRequired = false)]
public string MyProperty { get; set; }
}
IsRequired是关键项。
实际的序列化可以使用DataContractJsonSerializer完成:
public static string Serialize<T>(T obj){
string returnVal = "";
try
{
DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());
using (MemoryStream ms = new MemoryStream())
{
serializer.WriteObject(ms, obj);
returnVal = Encoding.Default.GetString(ms.ToArray());
}
}
catch (Exception /*exception*/)
{
returnVal = "";
//log error
}
return returnVal;
}
以上是 JavaScriptSerializer可以排除具有空值/默认值的属性吗? 的全部内容, 来源链接: utcz.com/qa/422088.html