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

回到顶部