[DataContract]
public class People
{
[DataMember(Name = "id")]
public int ID { get; set; }
[IgnoreDataMember]
public string Name { get; set; }
}
public JsonResult GetPeoples()
{
List<People>peoples=new List<People>();
//...
return Json(peoples);
}
希望得到:{"id":1}
实际得到:{"ID":1,"Name":"姓名"}
请问为什么[DataMember(Name = "id")]和[IgnoreDataMember]都没有起作用呢,要达到预期结果应该怎么做?
不需要序列化的字段不用加任何DataMember声明即可,比如你的Name属性,你不用加任何DataMember声明即可,这样子序列化的时候就不会被序列化的...
不加后你再测试下...
JsonResult用的是JavaScriptSerializer,不认DataMember的,你得自己写个ViewResult了……
属性是public的都会序列化
using Newtonsoft.Json;
[JsonProperty("id")]