如何将给定对象序列化为JSON,但只包含具有[DataMember]属性的属性。
User MyUser = new User();
string MessageJson = new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(MyUser);
public class User
{
[DataMember]
public string username { get; set; }
public string password { get; set; }
}
答案 0 :(得分:2)
您需要使用DataContractJsonSerializer。
请注意,我认为你在课堂上也需要DataContract
属性。
答案 1 :(得分:2)
您可以使用JSON.Net。
如果一个类有很多属性而你只想序列化它们的一小部分,那么将JsonIgnore添加到所有其他属性将是乏味且容易出错的。解决此方案的方法是将DataContractAttribute添加到类,将DataMemberAttributes添加到要序列化的属性。这是选择性序列化,与使用JsonIgnoreAttribute的选择退出序列化相比,只有您标记的属性被序列化。
[DataContract]
public class Computer
{
// included in JSON
[DataMember]
public string Name { get; set; }
[DataMember]
public decimal SalePrice { get; set; }
// ignored
public string Manufacture { get; set; }
public int StockCount { get; set; }
public decimal WholeSalePrice { get; set; }
public DateTime NextShipmentDate { get; set; }
}
答案 2 :(得分:0)
您可以将[ScriptIgnore]
属性放在不希望包含在结果中的属性中。